Skip to main content

Raw data models

MetricActivity

MetricActivity {
var timestamp: Long // Time in UTC format
var date: String // Local date corresponding to the timestamp, format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
var bpm: Int? // Heart rate [0-255]
var bpm_q: Int? // Heart rate quality [0-4]: 4 means very good quality, while 0 means bad quality
var q: Int? // Same as bpm_q
var last_steps: Int? // Number of steps in the last period
var activity_type: Int? // Activity type [0-7]: UNSPECIFIED = 0, OTHER = 1, WALK = 2, RUN = 4, CYCLE = 6, REST = 7
var speed: Double? // Speed: in m/s
var spo2: Int? // SPO2 (only for 287-2b) [0-255]
var spo2Q: Int? // Sp02 quality [0-4]: 4 means very good quality, while 0 means bad quality
var energy_exp: Int? // Energy expenditure in cal (Active calories + passive calories)
var respiration_rate: Float? // respiration rate in breath/min
var pha: Int? // Deprecated
var pha_q: Int? // Deprecated
var resp_q: Int? // Respiration rate quality [0-4]: 4 means very good quality, while 0 means bad quality
var wearing: Int? // Wearing status [0-4]: 0 means not wearing, and 4 means worn on the wrist
var move_alert: Int? // Deprecated
var cw: Int? // Deprecated
var cwt: Int? // Deprecated
var battery: Int? // Battery in percent [0-100]
var step_calories: Int? // Deprecated
var rest_calories: Int? // Deprecated
var distance: Int? // Deprecated
var step_duration: Int? // Deprecated
var active_calories: Int? // Deprecated
}
  • timestamp: Long = Time in UTC format
  • date: String = Local date corresponding to the timestamp, format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
  • bpm: Int? = Heart rate [0-255]
  • bpm_q: Int? = Heart rate quality [0-4]: 4 means very good quality, while 0 means bad quality
  • q: Int? = Same as bpm_q
  • last_steps: Int? = Number of steps in the last period
  • activity_type: Int? = Activity type [0-7]: UNSPECIFIED = 0, OTHER = 1, WALK = 2, RUN = 4, CYCLE = 6, REST = 7
  • speed: Double? = Speed: in m/s
  • spo2: Int? = SPO2 (only for 287-2b) [0-255]
  • spo2Q: Int? = Sp02 quality [0-4]: 4 means very good quality, while 0 means bad quality
  • energy_exp: Int? = Energy expenditure in cal (Active calories + passive calories)
  • respiration_rate: Float? = respiration rate in breath/min
  • pha: Int? // Deprecated
  • pha_q: Int? // Deprecated
  • resp_q: Int? = Respiration rate quality [0-4]: 4 means very good quality, while 0 means bad quality
  • wearing: Int? = Wearing status [0-4]: 0 means not wearing, and 4 means worn on the wrist
  • move_alert: Int? // Deprecated
  • cw: Int? // Deprecated
  • cwt: Int? // Deprecated
  • battery: Int? = Battery in percent [0-100]
  • step_calories: Int? // Deprecated
  • rest_calories: Int? // Deprecated
  • distance: Int? // Deprecated
  • step_duration: Int? // Deprecated
  • active_calories: Int? // Deprecated

Example for B1

// TODO MBO

Example for B2

Bracelet plan interval of 10 seconds

{
"timestamp":1694961234000,
"date":"2023-09-17T16:33:54.000+02:00",
"bpm":78,
"bpm_q":1,
"q":1,
"last_steps":2,
"activity_type":1,
"speed":0.7,
"spo2":100,
"spo2Q":2,
"energy_exp":175,
"respiration_rate":0,
"pha":0,
"pha_q":0,
"resp_q":0,
"wearing":4,
"move_alert":0,
"cw":null,
"cwt":null,
"battery":70,
"step_calories":null,
"rest_calories":null,
"distance":null,
"step_duration":null,
"active_calories":0,
"isSynced":false
},
{
"timestamp":1694961243000,
"date":"2023-09-17T16:34:03.000+02:00",
"bpm":79,
"bpm_q":1,
"q":1,
"last_steps":1,
"activity_type":1,
"speed":1.4,
"spo2":100,
"spo2Q":2,
"energy_exp":158,
"respiration_rate":0,
"pha":0,
"pha_q":0,
"resp_q":0,
"wearing":4,
"move_alert":0,
"cw":null,
"cwt":null,
"battery":70,
"step_calories":null,
"rest_calories":null,
"distance":null,
"step_duration":null,
"active_calories":0,
"isSynced":false
},
{
"timestamp":1694961253000,
"date":"2023-09-17T16:34:13.000+02:00",
"bpm":80,
"bpm_q":1,
"q":1,
"last_steps":2,
"activity_type":1,
"speed":1.1,
"spo2":100,
"spo2Q":2,
"energy_exp":175,
"respiration_rate":0,
"pha":0,
"pha_q":0,
"resp_q":0,
"wearing":4,
"move_alert":0,
"cw":null,
"cwt":null,
"battery":70,
"step_calories":null,
"rest_calories":null,
"distance":null,
"step_duration":null,
"active_calories":0,
"isSynced":false
},
{
"timestamp":1694961263000,
"date":"2023-09-17T16:34:23.000+02:00",
"bpm":81,
"bpm_q":1,
"q":1,
"last_steps":0,
"activity_type":1,
"speed":1.1,
"spo2":100,
"spo2Q":2,
"energy_exp":1480,
"respiration_rate":0,
"pha":0,
"pha_q":0,
"resp_q":0,
"wearing":4,
"move_alert":0,
"cw":null,
"cwt":null,
"battery":70,
"step_calories":null,
"rest_calories":null,
"distance":null,
"step_duration":null,
"active_calories":1305,
"isSynced":false
},
{
"timestamp":1694961273000,
"date":"2023-09-17T16:34:33.000+02:00",
"bpm":81,
"bpm_q":1,
"q":1,
"last_steps":0,
"activity_type":1,
"speed":0.9,
"spo2":100,
"spo2Q":2,
"energy_exp":175,
"respiration_rate":0,
"pha":0,
"pha_q":0,
"resp_q":0,
"wearing":4,
"move_alert":0,
"cw":null,
"cwt":null,
"battery":70,
"step_calories":null,
"rest_calories":null,
"distance":null,
"step_duration":null,
"active_calories":0,
"isSynced":false
},
{
"timestamp":1694961283000,
"date":"2023-09-17T16:34:43.000+02:00",
"bpm":82,
"bpm_q":1,
"q":1,
"last_steps":0,
"activity_type":1,
"speed":0.9,
"spo2":100,
"spo2Q":2,
"energy_exp":175,
"respiration_rate":0,
"pha":0,
"pha_q":0,
"resp_q":0,
"wearing":4,
"move_alert":0,
"cw":null,
"cwt":null,
"battery":70,
"step_calories":null,
"rest_calories":null,
"distance":null,
"step_duration":null,
"active_calories":0,
"isSynced":false
},
{
"timestamp":1694961294000,
"date":"2023-09-17T16:34:54.000+02:00",
"bpm":84,
"bpm_q":1,
"q":1,
"last_steps":0,
"activity_type":6,
"speed":0.9,
"spo2":100,
"spo2Q":2,
"energy_exp":193,
"respiration_rate":0,
"pha":0,
"pha_q":0,
"resp_q":0,
"wearing":4,
"move_alert":0,
"cw":null,
"cwt":null,
"battery":70,
"step_calories":null,
"rest_calories":null,
"distance":null,
"step_duration":null,
"active_calories":0,
"isSynced":false
},

MetricHrv

MetricActivity {
@PrimaryKey
var timestamp: Long = 0 // Time in UTC format
var date: String = "" // Local date corresponding to the timestamp, format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
var beats: Int = 0
var isSynced: Boolean = false
}
  • timestamp: Long = Time in UTC format
  • date: String = Local date corresponding to the timestamp, format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
  • beats: Int? = RR-interval, the interval between between successive heartbeats in ms
  • isSynced: Boolean : deprecated

MetricHRV comes regurlarly (almost every second), but the person has to be not still and not move too much, if the user is moving the RR-interval will be null

HRV sampling rate explained

Example:

{
"timestamp":1695184935000,
"date":"2023-09-20T06:42:15.000+02:00",
"beats":1068,
"isSynced":false
},
{
"timestamp":1695184935001,
"date":"2023-09-20T06:42:15.001+02:00",
"beats":996,
"isSynced":false
},
{
"timestamp":1695184937000,
"date":"2023-09-20T06:42:17.000+02:00",
"beats":1096,
"isSynced":false
}

MetricTemperature

MetricTemperature {
@PrimaryKey
var timestamp: Long = 0 // Time in UTC format
var date: String = "" // Local date corresponding to the timestamp, format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
var temp1: Float? = null
var temp2: Float? = null
var tempAmb: Float? = null
var isSynced: Boolean = false
  • timestamp: Long = Time in UTC format
  • date: String = Local date corresponding to the timestamp, format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
  • temp1: Int? = core body temperature of B2 bracelet in celcius (average since the last raw metric)
  • temp2: Int? = skin temperature of B1 bracelet in celcius (average since the last raw metric)
  • isSynced: Boolean : deprecated

Example :

Bracelet plan interval of 60 seconds

{
"timestamp":1695394200000,
"date":"2023-09-22T16:50:54.000+02:00",
"temp1":36.81999969482422,
"temp2":0
},
{
"timestamp":1695394260000,
"date":"2023-09-22T16:51:53.000+02:00",
"temp1":36.81999969482422,
"temp2":0
},
{
"timestamp":1695394320000,
"date":"2023-09-22T16:52:53.000+02:00",
"temp1":36.810001373291016,
"temp2":0
},
{
"timestamp":1695394380000,
"date":"2023-09-22T16:53:53.000+02:00",
"temp1":36.810001373291016,
"temp2":0
}

MetricPpg

MetricPpg {
@PrimaryKey
var timestamp: Long = 0 // Time in UTC format
var date: String =
"" // Local date corresponding to the timestamp, format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
var acc: Int = 0
var ppg: Int = 0
var bpm: Int = 0
var bpmQ: Int = 0
var crc: Int = 0
var accX: Int? = null
var accY: Int? = null
var accZ: Int? = null
var isSynced: Boolean = false
}
  • timestamp: Long = Time in UTC format
  • date: String = Local date corresponding to the timestamp, format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
  • acc: Int? = accelerometer value (average since the last raw metric) Acc technical documentation
  • ppg: Int? = ppg value (average since the last raw metric)
  • bpm: Int? = heart rate value (average since the last raw metric)
  • bpm_q: Int? = Heart rate quality [0-4]: 4 means very good quality, while 0 means bad quality
  • accX: Int? = accelerometer X value (average since the last raw metric) Acc technical documentation
  • accY: Int? = accelerometer Y value (average since the last raw metric) Acc technical documentation
  • accZ: Int? = accelerometer Z value (average since the last raw metric) Acc technical documentation
  • isSynced: Boolean : deprecated

Example:

{
"timestamp":1698329991511,
"date":"2023-10-26T16:19:51.511+02:00",
"acc":28,
"ppg":825,
"bpm":0,
"bpmQ":0,
"crc":0,
"accX":-168,
"accY":-200,
"accZ":-52,
"isSynced":false
},{
"timestamp":1698329991551,
"date":"2023-10-26T16:19:51.551+02:00",
"acc":19,
"ppg":813,
"bpm":0,
"bpmQ":0,
"crc":0,
"accX":-176,
"accY":-188,
"accZ":-40,
"isSynced":false
},
{
"timestamp":1698329991591,
"date":"2023-10-26T16:19:51.591+02:00",
"acc":38,
"ppg":792,
"bpm":0,
"bpmQ":0,
"crc":0,
"accX":-148,
"accY":-200,
"accZ":-64,
"isSynced":false
},
{
"timestamp":1698329991631,
"date":"2023-10-26T16:19:51.631+02:00",
"acc":24,
"ppg":765,
"bpm":0,
"bpmQ":0,
"crc":0,
"accX":-160,
"accY":-200,
"accZ":-40,
"isSynced":false
},
{
"timestamp":1698329991671,
"date":"2023-10-26T16:19:51.671+02:00",
"acc":5,
"ppg":746,
"bpm":0,
"bpmQ":0,
"crc":0,
"accX":-160,
"accY":-204,
"accZ":-40,
"isSynced":false
},
{
"timestamp":1698329991711,
"date":"2023-10-26T16:19:51.711+02:00",
"acc":42,
"ppg":756,
"bpm":0,
"bpmQ":0,
"crc":0,
"accX":-172,
"accY":-164,
"accZ":-28,
"isSynced":false
},