Introduction¶
The HUR SmartTouch AUX-API allows developers to interact with Hur SmartTouch data in their own applications, products and services. It is intended for selected companies directly cooperating with AB HUR Oy in order to incorporate gym data in third-party applications. Process of registering application to enable use of API is strictly controlled by HUR.
Prerequisites¶
In order to get a connection to AUX-API, developer must obtain from HUR following credentials:
- Special user account (username and password) in HUR SmartTouch deployed server
- Client ID and Client Secret (for third-party application) associated with this user account
Creating Client ID and Client Secret¶
- Go to https://<site>/o/applications
- Click "New Application"-button
- Fill the form:
- choose "confidential" in client type
- choose "resource owner password-based" in authorization grant type
Access to API¶
Aux-API is accessible upon OAuth2 authentication. To access individual resources request must provide access token in html header. Simple registration/token/request flow is required to obtain access token.
The following roles are presented in the system:
- Resource Owner – is special user in HUR SmartTouch System allowed access to data provided by Aux-API
- Resource server – is the Aux-API
- Client – application requesting data from resource server in behave of user using created tokens.
Documentation of the Aux-API can be found in /docs/ page of HUR SmartTouch server.
API Flow Example¶
Below is the overview of how to get resources from HUR SmartTouch server.
As mentioned before HUR supplies: username, password and additional ClientID plus Client secret for this user.
Access Token¶
In order to get access token for particular scope one should send http get request in the form:
curl -X POST -d "grant_type=password&username=XXXX&password=XXXX&scope=XXXX" -u'clientid:clientsecret' https://<site>/o/token/
Example request
Parameter | Value |
---|---|
site | example.hursmarttouch.com |
user | example |
password | mypassword |
client_id | 1234 |
client_secret | 9999 |
scope | read write users |
curl -k -X POST –d "grant_type=password&username=example&password=mypassword&scope=read write users" -u '1234:9999' https://example.hursmarttouch.com/o/token/
Example response
{
"access_token":"nrlLtqJU6AE6SozTHYyMwdEB9k2nA0N",
"token_type":"Bearer",
"expires_in":36000,
"refresh_token":"ovxtUXpAvEwvDHM4iAlSJv8VySCubw",
"scope":"read write users"
}
Available scopes¶
Scope | Description |
---|---|
read | read scope |
write | write scope |
users | access to users |
memberships | access to memberships |
trainings | access to trainings, training activities |
visits | access to visits, visit activities |
facilities | access to facilities data, membership types |
equipment | access to equipment in facilities |
activities | access to available activities |
Getting all users¶
Example request
Parameter | Value |
---|---|
site | example.hursmarttouch.com |
curl -H "Authorization: Bearer iLWWgStzSOHF47OU7ZpHa8ZPicP0N5" https://example.hursmarttouch.com/aux-api/users/
Example response
{
"count":378,
"next":"https://dev.hur.fi/aux-api/users/?page=2",
"previous":null,
"results":[
{
"id":-1,
"username":"AnonymousUser",
"first_name":"",
"last_name":"",
"is_staff":false,
"is_active":false,
"last_login":null,
"date_joined":"2016-02-02T08:38:37Z",
"email":"",
"membership":null,
"profile":null,
"physical_attributes":null,
"contact":null,
"cards":[
]
},
{
"id":1,
"username":"admin",
"first_name":"Hur",
"last_name":"Admin",
"is_staff":true,
"is_active":true,
"last_login":"2020-03-25T08:42:12.665921Z",
"date_joined":"2014-02-05T13:09:07Z",
"email":"admin@wasari.com",
"membership":{
"id":394,
"start_date":"2015-06-12",
"end_date":null,
"on_hold":false,
"start_time":null,
"end_time":null,
"visit_count":null,
"visits_left":null,
"price":null,
"payment_period":null,
"last_payment_date":null,
"facility":1,
"membership_type":1,
"personal_trainer":null
},
"profile":{
"id":73,
"mugshot":"",
"privacy":"registered",
"language":"en",
"welcome_name":"admin",
"gender":"M",
"date_of_birth":"1970-01-01",
"custom_id":null,
"comments":null,
"tags":[
]
},
"physical_attributes":{
"id":171,
"updated":"2015-11-03T08:12:40.301092Z",
"height":null,
"weight":null,
"max_hr":null,
"rest_hr":null,
"body_fat":null,
"waist":null,
"hip":null,
"blood_pressure_dia":null,
"blood_pressure_sys":null
},
"contact":null,
"cards":[
]
}
]
}
Getting single user¶
User ID known¶
Example request
Parameter | Value |
---|---|
site | example.hursmarttouch.com |
user_id | 40 |
curl -H "Authorization: Bearer iLWWgStzSOHF47OU7ZpHa8ZPicP0N5" https://example.hursmarttouch.com/aux-api/users/40/
Example response
{
"id":40,
"username":"taneli_p",
"first_name":"Taneli",
"last_name":"Peltoniemi",
"is_staff":true,
"is_active":true,
"last_login":"2020-02-20T10:24:56.679174Z",
"date_joined":"2014-04-16T06:56:09Z",
"email":"taneli.peltoniemi@hur.fi",
"membership":{
"id":24,
"start_date":"2018-01-01",
"end_date":"2026-04-01",
"on_hold":false,
"start_time":"06:00:00",
"end_time":"23:59:00",
"visit_count":25,
"visits_left":241,
"price":"100.00",
"payment_period":3,
"last_payment_date":null,
"facility":1,
"membership_type":1,
"personal_trainer":null
},
"profile":{
"id":24,
"mugshot":"",
"privacy":"registered",
"language":"en",
"welcome_name":"Taneli",
"gender":"M",
"date_of_birth":"1991-12-21",
"custom_id":"",
"comments":null,
"tags":[
"community client",
"rehabilitation"
]
},
"physical_attributes":{
"id":47,
"updated":"2019-07-02T11:33:57.994056Z",
"height":1840,
"weight":99640,
"max_hr":190,
"rest_hr":32,
"body_fat":"26.90",
"waist":100,
"hip":15,
"blood_pressure_dia":122,
"blood_pressure_sys":69
},
"contact":{
"id":5,
"updated":"2017-11-23T11:45:57.707805Z",
"street_address":"Patamäentie 4",
"post_code":"67100",
"city":"Kokkola",
"state":"",
"country":"Finland",
"phone":"",
"email":""
},
"cards":[
{
"id":1212,
"rfid_number":"ed45854f",
"card_type":0,
"expiry_date":null
},
{
"id":1389,
"rfid_number":"4a99bccd",
"card_type":0,
"expiry_date":null
},
{
"id":1393,
"rfid_number":"0dde6a07",
"card_type":0,
"expiry_date":null
},
{
"id":1290,
"rfid_number":"73eea0ff",
"card_type":0,
"expiry_date":null
},
{
"id":1307,
"rfid_number":"62f39d02",
"card_type":0,
"expiry_date":null
}
]
}
RFID tag known¶
Example request
Parameter | Value |
---|---|
site | example.hursmarttouch.com |
rfid_tag | ed45854f |
curl -H "Authorization: Bearer iLWWgStzSOHF47OU7ZpHa8ZPicP0N5" https://example.hursmarttouch.com/aux-api/users/?card__rfid_number=ed45854f
Example response
{
"count":1,
"next":null,
"previous":null,
"results":[
{
"id":40,
"username":"taneli_p",
"first_name":"Taneli",
"last_name":"Peltoniemi",
"is_staff":true,
"is_active":true,
"last_login":"2020-02-20T10:24:56.679174Z",
"date_joined":"2014-04-16T06:56:09Z",
"email":"taneli.peltoniemi@hur.fi",
"membership":{
"id":24,
"start_date":"2018-01-01",
"end_date":"2026-04-01",
"on_hold":false,
"start_time":"06:00:00",
"end_time":"23:59:00",
"visit_count":25,
"visits_left":241,
"price":"100.00",
"payment_period":3,
"last_payment_date":null,
"facility":1,
"membership_type":1,
"personal_trainer":null
},
"profile":{
"id":24,
"mugshot":"",
"privacy":"registered",
"language":"en",
"welcome_name":"Taneli",
"gender":"M",
"date_of_birth":"1991-12-21",
"custom_id":"",
"comments":null,
"tags":[
"community client",
"rehabilitation"
]
},
"physical_attributes":{
"id":47,
"updated":"2019-07-02T11:33:57.994056Z",
"height":1840,
"weight":99640,
"max_hr":190,
"rest_hr":32,
"body_fat":"26.90",
"waist":100,
"hip":15,
"blood_pressure_dia":122,
"blood_pressure_sys":69
},
"contact":{
"id":5,
"updated":"2017-11-23T11:45:57.707805Z",
"street_address":"Patamäentie 4",
"post_code":"67100",
"city":"Kokkola",
"state":"",
"country":"Finland",
"phone":"",
"email":""
},
"cards":[
{
"id":1212,
"rfid_number":"ed45854f",
"card_type":0,
"expiry_date":null
},
{
"id":1389,
"rfid_number":"4a99bccd",
"card_type":0,
"expiry_date":null
},
{
"id":1393,
"rfid_number":"0dde6a07",
"card_type":0,
"expiry_date":null
},
{
"id":1290,
"rfid_number":"73eea0ff",
"card_type":0,
"expiry_date":null
},
{
"id":1307,
"rfid_number":"62f39d02",
"card_type":0,
"expiry_date":null
}
]
}
]
}
Getting visits¶
First you will have to acquire the access token for visits endpoint. Check the Access Token section for more information.
Example request
Parameter | Value |
---|---|
site | example.hursmarttouch.com |
user | 40 |
curl -H "Authorization: Bearer ys2e3KwLvGTKVheuOHSZj8yJvHcCYn" https://example.hursmarttouch.com/aux-api/visits/?user__id=40
Example response
{
"count":597,
"next":"https://dev.hur.fi/aux-api/visits/?page=2&user__id=40",
"previous":null,
"results":[
{
"id":463,
"user":40,
"visit_type":1,
"facility":1,
"training_program":148,
"training_program_name":"2sets",
"login":"2014-09-24T08:00:10Z",
"logout":"2014-09-24T08:29:11Z",
"comments":"Created by FCM2",
"activities":[
{
"id":2614,
"activity":37,
"activity_name":"Twist Left",
"visit":463,
"training_activity":717,
"scheduled_activity":null,
"start_time":"2014-09-24T05:00:15Z",
"end_time":"2014-09-24T05:01:17Z",
"status":"F",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":8000,
"reps":8,
"update":500
},
{
"HR":120,
"load":8000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"sets":[
{
"load":8000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":8000,
"reps":8,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2615,
"activity":39,
"activity_name":"Twist Right",
"visit":463,
"training_activity":718,
"scheduled_activity":null,
"start_time":"2014-09-24T05:01:44Z",
"end_time":"2014-09-24T05:02:49Z",
"status":"O",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":8000,
"reps":8,
"update":500
},
{
"HR":120,
"load":8000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"sets":[
{
"load":8000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":8000,
"reps":9,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2608,
"activity":4,
"activity_name":"Abdomen",
"visit":463,
"training_activity":711,
"scheduled_activity":null,
"start_time":"2014-09-24T05:06:27Z",
"end_time":"2014-09-24T05:07:37Z",
"status":"F",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":19000,
"reps":8,
"update":500
},
{
"HR":120,
"load":19000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"actuators":[
{
"position":1338,
"channel":0
},
{
"position":0,
"channel":1
}
],
"sets":[
{
"load":19000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":19000,
"reps":8,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2609,
"activity":5,
"activity_name":"Back",
"visit":463,
"training_activity":712,
"scheduled_activity":null,
"start_time":"2014-09-24T05:10:45Z",
"end_time":"2014-09-24T05:12:16Z",
"status":"F",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":15000,
"reps":8,
"update":500
},
{
"HR":120,
"load":15000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"actuators":[
{
"position":564,
"channel":0
},
{
"position":0,
"channel":1
}
],
"sets":[
{
"load":15000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":15000,
"reps":8,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2610,
"activity":9,
"activity_name":"Leg Extension",
"visit":463,
"training_activity":713,
"scheduled_activity":null,
"start_time":"2014-09-24T05:19:22Z",
"end_time":"2014-09-24T05:20:28Z",
"status":"F",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":10000,
"reps":8,
"update":500
},
{
"HR":120,
"load":10000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"actuators":[
{
"position":1023,
"channel":0
},
{
"position":370,
"channel":1
},
{
"position":358,
"channel":2
}
],
"sets":[
{
"load":10000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":10000,
"reps":8,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2611,
"activity":8,
"activity_name":"Leg Curl",
"visit":463,
"training_activity":714,
"scheduled_activity":null,
"start_time":"2014-09-24T05:20:57Z",
"end_time":"2014-09-24T05:22:11Z",
"status":"O",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":12000,
"reps":8,
"update":500
},
{
"HR":120,
"load":12000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"actuators":[
{
"position":1023,
"channel":0
},
{
"position":295,
"channel":1
},
{
"position":288,
"channel":2
}
],
"sets":[
{
"load":12000,
"reps":9,
"max_hr":0,
"update":500
},
{
"load":12000,
"reps":11,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2606,
"activity":30,
"activity_name":"Push Up",
"visit":463,
"training_activity":709,
"scheduled_activity":null,
"start_time":"2014-09-24T05:23:07Z",
"end_time":"2014-09-24T05:24:21Z",
"status":"F",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":10000,
"reps":8,
"update":500
},
{
"HR":120,
"load":10000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"actuators":[
{
"position":1384,
"channel":0
}
],
"sets":[
{
"load":10000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":10000,
"reps":8,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2607,
"activity":31,
"activity_name":"Pull Down",
"visit":463,
"training_activity":710,
"scheduled_activity":null,
"start_time":"2014-09-24T05:24:50Z",
"end_time":"2014-09-24T05:25:53Z",
"status":"F",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":15000,
"reps":8,
"update":500
},
{
"HR":120,
"load":15000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"actuators":[
{
"position":1384,
"channel":0
}
],
"sets":[
{
"load":15000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":15000,
"reps":8,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2612,
"activity":36,
"activity_name":"Abduction",
"visit":463,
"training_activity":715,
"scheduled_activity":null,
"start_time":"2014-09-24T05:27:08Z",
"end_time":"2014-09-24T05:28:01Z",
"status":"O",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":8000,
"reps":8,
"update":500
},
{
"HR":120,
"load":8000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"sets":[
{
"load":8000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":8000,
"reps":10,
"max_hr":0,
"update":500
}
]
}
},
{
"id":2613,
"activity":35,
"activity_name":"Adduction",
"visit":463,
"training_activity":716,
"scheduled_activity":null,
"start_time":"2014-09-24T05:28:15Z",
"end_time":"2014-09-24T05:29:10Z",
"status":"F",
"supervised_by":null,
"instruction":null,
"settings":{
"units":"kg",
"prec":1,
"rest":12,
"sets":[
{
"HR":120,
"load":10000,
"reps":8,
"update":500
},
{
"HR":120,
"load":10000,
"reps":8,
"update":500
}
]
},
"comments":"",
"supervisor_comments":"",
"user_comments":"",
"results":{
"sets":[
{
"load":10000,
"reps":8,
"max_hr":0,
"update":500
},
{
"load":10000,
"reps":8,
"max_hr":0,
"update":500
}
]
}
}
]
}
...
]
}
AUX-API nodes¶
The following resource nodes are present:
aux-api/users
aux-api/trainings
aux-api/trainings_activities
aux-api/visits
aux-api/visits_activities
aux-api/facilities
aux-api/equipment
aux-api/memberships
aux-api/membership_types
aux-api/available_activities
Filters¶
Requests for listing (GET-request) can be filtered.
Example
Parameter | Value |
---|---|
site | example.hursmarttouch.com |
curl -H "Authorization: Bearer iLWWgStzSOHF47OU7ZpHa8ZPicP0N5" https://example.hursmarttouch.com/aux-api/users/?last_name__contains=ski
This request will return all the users that have "ski" in their last name
Users filters¶
{
"last_name":[
"exact",
"contains"
],
"first_name":[
"exact",
"contains"
],
"username":[
"exact"
],
"is_staff":[
"exact"
],
"is_active":[
"exact"
],
"email":[
"exact",
"contains"
],
"date_joined":[
"lt",
"gt"
],
"last_login":[
"lt",
"gt"
],
"profile__date_of_birth":[
"lt",
"gt"
],
"profile__gender":[
"exact"
],
"profile__language":[
"exact"
],
"profile__welcome_name":[
"exact",
"contains"
],
"profile__custom_id":[
"exact",
"contains"
],
"profile__comments":[
"exact",
"contains"
],
"physical_attributes__updated":[
"lt",
"gt"
],
"physical_attributes__height":[
"exact",
"lt",
"gt"
],
"physical_attributes__weight":[
"exact",
"lt",
"gt"
],
"physical_attributes__max_hr":[
"exact",
"lt",
"gt"
],
"physical_attributes__rest_hr":[
"exact",
"lt",
"gt"
],
"physical_attributes__blood_pressure_dia":[
"exact",
"lt",
"gt"
],
"physical_attributes__blood_pressure_sys":[
"exact",
"lt",
"gt"
],
"membership__facility":[
"exact"
],
"membership__membership_type":[
"exact"
],
"membership__start_date":[
"lt",
"gt"
],
"membership__end_date":[
"lt",
"gt"
],
"membership__on_hold":[
"exact"
],
"membership__personal_trainer":[
"exact"
],
"membership__start_time":[
"exact",
"lt",
"gt"
],
"membership__end_time":[
"exact",
"lt",
"gt"
],
"membership__visit_count":[
"exact",
"lt",
"gt"
],
"membership__visits_left":[
"exact",
"lt",
"gt"
],
"contact__updated":[
"lt",
"gt"
],
"contact__street_address":[
"exact",
"contains"
],
"contact__post_code":[
"exact"
],
"contact__city":[
"exact",
"contains"
],
"contact__state":[
"exact",
"contains"
],
"contact__country":[
"exact",
"contains"
],
"contact__phone":[
"exact",
"contains"
],
"contact__email":[
"exact",
"contains"
]
}
Trainings Activities filters¶
{
"training_program__id":[
"exact"
],
"training_program__user__id":[
"exact"
],
"training_program__name":[
"exact",
"contains"
],
"training_program__facility__id":[
"exact"
],
"activity__id":[
"exact"
],
"activity__active":[
"exact"
],
"activity__name":[
"exact",
"contains"
],
"activity__use_in_training":[
"exact"
],
"activity__all_activity__id":[
"exact"
],
"activity__all_activity__name":[
"exact",
"contains"
],
"activity__all_activity__activity_type__id":[
"exact"
],
"activity__all_activity__activity_group__id":[
"exact"
],
"activity__all_activity__machine__id":[
"exact"
],
"activity__all_activity__machine__machine_id":[
"exact"
]
}
Visits filters¶
{
"user__id":[
"exact"
],
"user__username":[
"exact"
],
"user__is_staff":[
"exact"
],
"user__is_active":[
"exact"
],
"visit_type":[
"exact"
],
"facility__id":[
"exact"
],
"facility__slug":[
"exact"
],
"training_program__id":[
"exact"
],
"training_program__name":[
"exact"
],
"login":[
"exact",
"lt",
"gt"
],
"logout":[
"exact",
"lt",
"gt"
],
"comments":[
"icontains"
]
}
Visits Activities filters¶
{
"visit__id":[
"exact"
],
"visit__user__id":[
"exact"
],
"activity__id":[
"exact"
],
"activity__active":[
"exact"
],
"activity__name":[
"exact",
"contains"
],
"activity__use_in_training":[
"exact"
],
"activity__all_activity__id":[
"exact"
],
"activity__all_activity__name":[
"exact",
"contains"
],
"activity__all_activity__activity_type__id":[
"exact"
],
"activity__all_activity__activity_group__id":[
"exact"
],
"activity__all_activity__machine__id":[
"exact"
],
"activity__all_activity__machine__machine_id":[
"exact"
],
"supervised_by":[
"exact"
],
"start_time":[
"exact",
"lt",
"gt"
],
"end_time":[
"exact",
"lt",
"gt"
],
"status":[
"exact"
]
}
Activity types¶
ID | Name | Description |
---|---|---|
1 | Hur Machine Exercise | HUR machine exercise |
2 | Monark aerobic exercise | Currently not in use. |
3 | Custom - instructions only | Training activity with no settings parameter. Optionaly including instruction or comments. Used by HUR FreeTrainer. |
4 | Scifit Machine Exercise | Exercise using the scifit machines. |
5 | H/P Cosmos Treadmill Exercise | Currently not in use. |
6 | Hur Machine Exercise - one repetition max estimation | Currently not in use. |
7 | Custom - time based | Currently not in use. |
8 | Custom - countable reps | Currently not in use. |
9 | Custom - load (gram), countable reps | Currently not in use. |
10 | Group Class | Class with instructor. |
12 | Hur Machine Isometric Test | Isometric test on HUR machine |
13 | Emotion machine exercise | Basic Emotion activity |
14 | Emotion Treadmill Exercise | Exercise for Emotion Treadmill |
15 | Emotion Upper Body | Emotion Upper Body Activity |
16 | Emotion Cross Trainer | Emotion Cross Trainer activity |
17 | Emotion Recumbent Bike | Emotion Recumbent Bike activity |
18 | Balance Maze | Maze test for iBalance platform. |
19 | Balance Chase | Chase test for iBalance platform. |
20 | Balance Static | Static test for iBalance platform. |
21 | Balance Tennis | Tennis test for iBalance test. |
22 | Balance Weight | Weight test for iBalance platform. |
23 | Balance Stepper | Stepper test for iBalance platform. |
24 | Romberg Test | Standard Romberg protocol made with stable and unstable platform. |
25 | LOS Test | Test your limits of stability |
26 | Scifit Cooldown | Cooldown exercise for Scifit equipment. |
27 | Scifit Manual | Manual exercise for Scifit equipment. |
28 | Scifit Hill Profile | Hill Profile exercise for Scifit equipment. |
29 | Scifit Random Hill | Random Hill exercise for Scifit equipment. |
30 | Scifit Heart Rate | Heart Rate exercise for Scifit equipment. |
31 | Scifit Constant Work | Constant Work exercise for Scifit equipment. |
32 | Scifit ISO Strength | ISO Strength exercise for Scifit equipment. |
33 | Treadmill Cooldown | Cooldown exercise for Scifit treadmill equipment. |
34 | Treadmill Manual | Manual exercise for Scifit treadmill equipment. |
35 | Treadmill Heart Rate | Heart Rate exercise for Scifit treadmill equipment. |
36 | Treadmill Grade Program | Grade Program exercise for Scifit treadmill equipment. |
37 | Treadmill Speed Program | Speed Program exercise for Scifit treadmill equipment. |
38 | Tanita Measurement | Tanita measurement |
39 | Hur Machine Power Exercise | Currently not in use. |
40 | Visit Questionnaire | Questionnaire done during the visit |
41 | Profy 65+ | Profy 65+ balance testing protocol |
42 | PALSO | Palso 081 |
43 | Weight Distribution | Weight Distribution |
44 | GT Training | GT Training |
45 | Scifit Custom | Custom exercise for scifit equipment. Uses sets. |
46 | Treadmill Custom | Custom exercise for scifit treadmill equipment. Uses sets. |
47 | Emotion Stepper | Emotion stepper exercise. |
48 | Work | Currently not in use. |
49 | Lode Ergometer Custom | Custom exercise for the Lode ergometer equipment. Uses sets. |
50 | Lode Treadmill Custom | Custom exercise for Lode treadmill equipment. Uses sets. |
51 | CyberCycle Exercise | Activities supported by CyberCycler |
52 | Astrand Test | Astrand test on a bike is used to estimate VO2 max from submaximal exercise levels |
53 | Cogni Training | Cognibike Training |
54 | Cogni Isokinetic | Cognibike Isokinetic |
55 | Cogni Pattern | Cognibike Pattern |
56 | Custom | Custom activity with varied parameters. |
57 | Lode Recumbent Custom | Custom exercise for the Lode recumbent equipment. Uses sets. |
HUR activity settings and results¶
Settings¶
- Units: measurement units used during training (kg or lb)
- Actuators: motor position for each seat and/or lever arm motor for the user
- Position: motor position
- Channel: motor identification
- Prec: Precision of load
- Rest: rest time between sets. Only used if there’s more than one set.
- Sets: settings for each set in training program
- HR: target heart rate
- Load: target load in grams
- Reps: repetition
- Update: how much target load is updated, in grams, if user overperforms the activity
Example data
{
"actuators":[
{
"position":383,
"channel":0
},
{
"position":383,
"channel":1
},
{
"position":357,
"channel":2
}
],
"prec":1,
"rest":60,
"target_pow":197,
"sets":[
{
"HR":100,
"load":10000,
"reps":3,
"update":"300"
},
{
"HR":100,
"load":10000,
"reps":3,
"update":"300"
}
],
"units":"kg"
}
Results¶
- Reps_data_pos_unit: unit for lever arm position, “deg”=degrees
- Sets: for each set data for each repetition
- Load: load used, in grams
- Reps: repetitions done
- Reps_data: Data for each repetition in set. If machine has two lever arms, there is repetition values for both left and right sides separately (“right” and “left”)
- max_vel: maximum velocity in repetition
- pow: Power (watt) when max velocity occurred
- vel: Max velocity value (m/s)
- pos: Position (mm) of piston in arm cylinder
- ts: Time stamp (ms)
- peak_pow: Peak power in repetition
- pow: Peak Power value (watt)
- vel: Velocity value (m/s)
- pos: Position (mm) of piston in arm cylinder
- spress: System pressure value in (mbar)
- ts: Time stamp (ms)
- max_spress: Max system pneumatic pressure measured in repetition
- vel: Velocity value (m/s)
- pos: Position (mm) of piston in arm cylinder
- spress: System pressure value in (mbar)
- ts: Time stamp (ms)
- rep_start: Start of the repetition
- load: Set Load (gram) for when reps started
- pos: Position (mm) when repetition started
- spress: System pressure value in (mbar)
- ts: Time stamp (ms)
- work: Work performed during the repetition (J)
- max_pos: Max arm position in repetition
- pos: Position (mm) of piston in arm cylinder
- ts: Time stamp (ms)
- rep_end: End of the repetition
- pos: Position (mm) of piston in arm cylinder
- ts: Time stamp (ms)
- avg_hr: average heart rate
- max_hr: maximum heart rate
- end_hr: heart rate at the end
- max_vel: maximum velocity in repetition
Example data
{
"reps_data_pos_unit":"deg",
"sets":[
{
"load":10000.0,
"reps":3.0,
"update":"0",
"reps_data":{
"right":[
{
"max_vel":{
"pow":-110.73,
"vel":0.333,
"pos":192.649,
"ts":1568715479568.0
},
"peak_pow":{
"pow":138.32,
"vel":0.214,
"pos":151.576,
"spress":3.633,
"ts":1568715478902.0
},
"max_spress":{
"vel":-0.152,
"pos":104.48,
"spress":3.732,
"ts":1568715479081.0
},
"rep_start":{
"load":10000.0,
"pos":190.655,
"spress":3.497,
"ts":1568715478060.0
},
"work":0.0,
"max_pos":{
"pos":97.674,
"ts":1568715479148.0
},
"rep_end":{
"pos":213.962,
"ts":1568715479712.0
}
},
{
"max_vel":{
"pow":-151.07,
"vel":0.339,
"pos":154.56,
"ts":1568715480983.0
},
"peak_pow":{
"pow":111.48,
"vel":0.233,
"pos":134.246,
"spress":3.571,
"ts":1568715480500.0
},
"max_spress":{
"vel":-0.078,
"pos":193.67,
"spress":3.707,
"ts":1568715479926.0
},
"rep_start":{
"load":10000.0,
"pos":210.75,
"spress":3.658,
"ts":1568715479734.0
},
"work":0.0,
"max_pos":{
"pos":96.438,
"ts":1568715480702.0
},
"rep_end":{
"pos":212.313,
"ts":1568715481285.0
}
},
{
"max_vel":{
"pow":112.21,
"vel":0.311,
"pos":126.328,
"ts":1568715482061.0
},
"peak_pow":{
"pow":129.06,
"vel":-0.24,
"pos":145.613,
"spress":3.497,
"ts":1568715481992.0
},
"max_spress":{
"vel":0.062,
"pos":206.46,
"spress":3.67,
"ts":1568715481387.0
},
"rep_start":{
"load":10000.0,
"pos":209.26,
"spress":3.633,
"ts":1568715481308.0
},
"work":0.0,
"max_pos":{
"pos":94.432,
"ts":1568715482241.0
},
"rep_end":{
"pos":206.46,
"ts":1568715482910.0
}
}
],
"left":[
{
"max_vel":{
"pow":133.56,
"vel":0.292,
"pos":144.865,
"ts":1568715479635.0
},
"peak_pow":{
"pow":133.56,
"vel":0.272,
"pos":151.576,
"spress":3.584,
"ts":1568715479612.0
},
"max_spress":{
"vel":-0.0,
"pos":199.069,
"spress":3.732,
"ts":1568715479081.0
},
"rep_start":{
"load":10000.0,
"pos":201.398,
"spress":3.707,
"ts":1568715479197.0
},
"work":0.0,
"max_pos":{
"pos":98.877,
"ts":1568715479881.0
},
"rep_end":{
"pos":219.636,
"ts":1568715480438.0
}
},
{
"max_vel":{
"pow":125.05,
"vel":0.378,
"pos":119.635,
"ts":1568715481297.0
},
"peak_pow":{
"pow":155.06,
"vel":0.339,
"pos":142.617,
"spress":3.571,
"ts":1568715481230.0
},
"max_spress":{
"vel":0.119,
"pos":206.46,
"spress":3.683,
"ts":1568715480657.0
},
"rep_start":{
"load":10000.0,
"pos":217.593,
"spress":3.547,
"ts":1568715480460.0
},
"work":0.0,
"max_pos":{
"pos":94.432,
"ts":1568715481410.0
},
"rep_end":{
"pos":217.593,
"ts":1568715482043.0
}
},
{
"max_vel":{
"pow":109.6,
"vel":0.322,
"pos":123.864,
"ts":1568715482971.0
},
"peak_pow":{
"pow":136.62,
"vel":0.292,
"pos":146.359,
"spress":3.534,
"ts":1568715482898.0
},
"max_spress":{
"vel":0.253,
"pos":110.543,
"spress":3.658,
"ts":1568715483040.0
},
"rep_start":{
"load":10000.0,
"pos":217.593,
"spress":3.571,
"ts":1568715482067.0
},
"work":0.0,
"max_pos":{
"pos":94.432,
"ts":1568715483112.0
},
"rep_end":{
"pos":201.398,
"ts":1568715483823.0
}
}
]
},
"avg_hr":0.0,
"max_hr":0.0,
"end_hr":0.0
},
{
"load":10000.0,
"reps":4.0,
"update":"0",
"reps_data":{
"right":[
{
"max_vel":{
"pow":-112.48,
"vel":0.384,
"pos":132.692,
"ts":1568715498367.0
},
"peak_pow":{
"pow":165.47,
"vel":0.0,
"pos":150.831,
"spress":3.658,
"ts":1568715497950.0
},
"max_spress":{
"vel":-0.085,
"pos":97.674,
"spress":3.769,
"ts":1568715498155.0
},
"rep_start":{
"load":10000.0,
"pos":191.644,
"spress":3.51,
"ts":1568715497752.0
},
"work":0.0,
"max_pos":{
"pos":96.438,
"ts":1568715498178.0
},
"rep_end":{
"pos":209.26,
"ts":1568715498800.0
}
},
{
"max_vel":{
"pow":-133.96,
"vel":0.298,
"pos":154.56,
"ts":1568715499975.0
},
"peak_pow":{
"pow":117.97,
"vel":-0.199,
"pos":133.471,
"spress":3.658,
"ts":1568715499489.0
},
"max_spress":{
"vel":0.051,
"pos":200.219,
"spress":3.745,
"ts":1568715498970.0
},
"rep_start":{
"load":10000.0,
"pos":207.833,
"spress":3.707,
"ts":1568715498822.0
},
"work":0.0,
"max_pos":{
"pos":100.049,
"ts":1568715499691.0
},
"rep_end":{
"pos":207.833,
"ts":1568715500320.0
}
},
{
"max_vel":{
"pow":90.88,
"vel":0.281,
"pos":114.303,
"ts":1568715501124.0
},
"peak_pow":{
"pow":119.55,
"vel":-0.22,
"pos":131.911,
"spress":3.646,
"ts":1568715501057.0
},
"max_spress":{
"vel":0.14,
"pos":105.533,
"spress":3.732,
"ts":1568715501351.0
},
"rep_start":{
"load":10000.0,
"pos":207.833,
"spress":3.72,
"ts":1568715500342.0
},
"work":0.0,
"max_pos":{
"pos":94.432,
"ts":1568715501260.0
},
"rep_end":{
"pos":207.833,
"ts":1568715502000.0
}
},
{
"max_vel":{
"pow":-93.56,
"vel":0.411,
"pos":209.26,
"ts":1568715505224.0
},
"peak_pow":{
"pow":43.49,
"vel":0.122,
"pos":182.31,
"spress":3.448,
"ts":1568715504835.0
},
"max_spress":{
"vel":-0.0,
"pos":206.46,
"spress":3.707,
"ts":1568715502061.0
},
"rep_start":{
"load":10000.0,
"pos":193.67,
"spress":3.411,
"ts":1568715504690.0
},
"work":0.0,
"max_pos":{
"pos":174.677,
"ts":1568715504969.0
},
"rep_end":{
"pos":224.472,
"ts":1568715505301.0
}
}
],
"left":[
{
"max_vel":{
"pow":109.72,
"vel":0.267,
"pos":133.471,
"ts":1568715498767.0
},
"peak_pow":{
"pow":119.88,
"vel":0.239,
"pos":139.601,
"spress":3.658,
"ts":1568715498745.0
},
"max_spress":{
"vel":-0.048,
"pos":196.844,
"spress":3.769,
"ts":1568715498155.0
},
"rep_start":{
"load":10000.0,
"pos":197.945,
"spress":3.745,
"ts":1568715498206.0
},
"work":0.0,
"max_pos":{
"pos":103.406,
"ts":1568715498970.0
},
"rep_end":{
"pos":209.26,
"ts":1568715499517.0
}
},
{
"max_vel":{
"pow":113.83,
"vel":0.261,
"pos":140.358,
"ts":1568715500199.0
},
"peak_pow":{
"pow":117.81,
"vel":0.237,
"pos":146.359,
"spress":3.621,
"ts":1568715500176.0
},
"max_spress":{
"vel":0.0,
"pos":203.852,
"spress":3.745,
"ts":1568715499624.0
},
"rep_start":{
"load":10000.0,
"pos":206.46,
"spress":3.695,
"ts":1568715499539.0
},
"work":0.0,
"max_pos":{
"pos":98.877,
"ts":1568715500445.0
},
"rep_end":{
"pos":209.26,
"ts":1568715501085.0
}
},
{
"max_vel":{
"pow":131.95,
"vel":0.298,
"pos":147.851,
"ts":1568715501767.0
},
"peak_pow":{
"pow":145.11,
"vel":0.261,
"pos":155.307,
"spress":3.658,
"ts":1568715501740.0
},
"max_spress":{
"vel":0.047,
"pos":196.844,
"spress":3.732,
"ts":1568715501351.0
},
"rep_start":{
"load":10000.0,
"pos":207.833,
"spress":3.683,
"ts":1568715501107.0
},
"work":0.0,
"max_pos":{
"pos":100.049,
"ts":1568715501988.0
},
"rep_end":{
"pos":210.75,
"ts":1568715502638.0
}
},
{
"max_vel":{
"pow":8.48,
"vel":0.187,
"pos":206.46,
"ts":1568715502678.0
},
"peak_pow":{
"pow":40.51,
"vel":0.097,
"pos":194.708,
"spress":3.46,
"ts":1568715502814.0
},
"max_spress":{
"vel":0.038,
"pos":185.909,
"spress":3.485,
"ts":1568715502948.0
},
"rep_start":{
"load":10000.0,
"pos":206.46,
"spress":3.423,
"ts":1568715502661.0
},
"work":0.0,
"max_pos":{
"pos":184.995,
"ts":1568715502970.0
},
"rep_end":{
"pos":207.833,
"ts":1568715503537.0
}
}
]
},
"avg_hr":0.0,
"max_hr":0.0,
"end_hr":0.0
}
]
}