Skip to main content

HS2S Pro

API Reference

Import HS2S Pro module

import {
HS2SProModule,
HS2SProProfileModule
} from '@ihealth/ihealthlibrary-react-native';

Add and remove listener

// add
notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
console.log(event);
});

// remove
notifyListener.remove();

Get HS2S Pro information

HS2SProModule.getDeviceInfo(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_get_device_info") {
console.log(event["battery"]);
console.log(event["unit_current"]);
console.log(event["user_count"]);
}
});

Get HS2S Pro battery level

HS2SProModule.getBattery(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "battery_hs") {
console.log(event["battery"]);
}
});

Set HS2S Pro unit type

/**
* Unit type:
* 1: kg
* 2: lbs
* 3: st
**/
HS2SProModule.setUnit(mac, unit);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_set_unit") {
console.log(event["status"]);
}
});

Get user profile in HS2S Pro

HS2SProModule.getUserInfo(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_get_user_info") {
console.log(event["user_info_count"]);
let array = event["user_info_array"];
console.log(array["body_building"]);
console.log(array["impedance"]);
console.log(array["height"]);
console.log(array["age"]);
console.log(array["gender"]);
console.log(array["weight"]);
console.log(array["create_time"]);
console.log(array["user_id"]);
}
});

Create or update user profile in HS2S Pro

/**
* userID: User id, the id must be 16 digits.
* createTS: Create user or modify timestamp.
* weight: user current weight, the unit is kg, range is 20kg~180kg.
* age: user age, range is 18-99, if you are not in this range, you may not get the correect body fat result
* height: user height, range is 90cm~220cm
* gender: 0: female, 1: male
* impedanceMark: 0: no need body fat measurement, 1: need fat measurement
* fitnessMark: 0: no body building, 1: body building
**/
HS2SProModule.updateUserInfo(mac, userID, createTS, weight, age, height, gender, impedanceMark, fitnessMark);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_create_or_update_user_info") {
console.log(event["status"]);
}
});

Delete user profile in HS2S Pro

/**
* userID: User id.
**/
HS2SProModule.deleteUser(mac, userId);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_delete_user_info") {
console.log(event["status"]);
}
});

Get the number of offline measurement result in HS2S Pro

/**
* userID: User id.
**/
HS2SProModule.getMemoryDataCount(mac, userId);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_history_data_num") {
console.log(event["history_data_count"]);
}
});

Get offline data in HS2S Pro

/**
* userID: User id.
**/
HS2SProModule.getMemoryData(mac, userId);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_history_data") {
let arr = event["history_data"];
arr.forEach(function(result) {
console.log(result["right_time"]);
console.log(result["body_building"]);
console.log(result["gender"]);
console.log(result["height"]);
console.log(result["weight"]);
console.log(result["instruction_type"]);
console.log(result["impedanceEncrypt"]);
console.log(result["age"]);
console.log(result["impedance"]);
console.log(result["dataID"]);
console.log(result["measure_time"]);
console.log(result["user_num"]);
console.log(result["data_impedance_errors"]);
})
}
//If body fat is measured, this information will be returned :

if (event.action === "action_history_data") {
let arr = event["history_data"];
arr.forEach(function(result) {
console.log(result["right_time"]);
console.log(result["body_building"]);
console.log(result["gender"]);
console.log(result["height"]);
console.log(result["weight"]);
console.log(result["instruction_type"]);
console.log(result["impedanceEncrypt"]);
console.log(result["age"]);
console.log(result["impedance"]);
console.log(result["dataID"]);
console.log(result["measure_time"]);
console.log(result["user_num"]);
console.log(result["data_impedance_errors"]);
console.log(result["body_fit_percentage"]);
console.log(result["protein_rate"]);
console.log(result["muscle_mass"]);
console.log(result["body_water_rate"]);
console.log(result["bone_salt_content"]);
})
}



});

Delete offline data in HS2S Pro by user id

/**
* userID: User id.
**/
HS2SProModule.deleteMemoryData(mac, userId);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_delete_history_data") {
console.log(event["status"]);
}
});

Get the number of guest offline data in HS2S Pro

HS2SProModule.getAnonymousMemoryDataCount(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_anonymous_data_num") {
console.log(event["anonymous_data_count"]);
}
});

Get guest offline data in HS2S Pro

HS2SProModule.getAnonymousMemoryData(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_anonymous_data") {
let arr = event["history_data"];
arr.forEach(function(result) {
console.log(result["right_time"]);
console.log(result["dataID"]);
console.log(result["measure_time"]);
console.log(result["weight"]);
})
}
});

Delete guest offline data

HS2SProModule.deleteAnonymousMemoryData(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_delete_anonymous_data") {
console.log(event["status"]);
}
});

Start a online measurement

The API is async function. It will return message until finish measurement.

/**
* userType:0 guest,1 normal user
* userID: User id, the id must be 16 digits.
* createTS: Create user or modify Timestamp.
* weight: user current weight, the unit is kg, range is 20kg~180kg.
* age: user age, range is 18-99, if you are not in this range, you may not get the correect body fat result
* height: user height, range is 90cm~220cm
* gender: 0: female, 1: male
* impedanceMark: 0: no need body fat measurement, 1: need fat measurement
* fitnessMark: 0: no body building, 1: body building
**/
HS2SProModule.measure(mac,userType,userID,createTS,weight,age,height,sex,impedanceMark,fitnessMark);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {

if (event.action === "action_online_real_time_weight") {
console.log(event["weight"]);

} else if (event.action === "action_online_result") {
console.log(event["weight"]);

} else if (event.action === "action_body_fat_result") {
let dic = event["data_body_fat_result"];
dic.forEach(function(result) {
console.log(result["right_time"]);
console.log(result["body_building"]);
console.log(result["gender"]);
console.log(result["height"]);
console.log(result["weight"]);
console.log(result["instruction_type"]);
console.log(result["impedanceEncrypt"]);
console.log(result["age"]);
console.log(result["impedance"]);
console.log(result["dataID"]);
console.log(result["measure_time"]);
console.log(result["user_num"]);
console.log(result["data_impedance_errors"]);
})
//If body fat is measured, this information will be returned :
let dic = event["data_body_fat_result"];
dic.forEach(function(result) {
console.log(result["right_time"]);
console.log(result["body_building"]);
console.log(result["gender"]);
console.log(result["height"]);
console.log(result["weight"]);
console.log(result["instruction_type"]);
console.log(result["impedanceEncrypt"]);
console.log(result["age"]);
console.log(result["impedance"]);
console.log(result["dataID"]);
console.log(result["measure_time"]);
console.log(result["user_num"]);
console.log(result["data_impedance_errors"]);
console.log(result["body_fit_percentage"]);
console.log(result["protein_rate"]);
console.log(result["muscle_mass"]);
console.log(result["body_water_rate"]);
console.log(result["bone_salt_content"]);
})
}
});

Start heart rate measurement mode

HS2SProModule.enterHS2SProHeartRateMeasurementMode(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_start_heartrate_measure") {

}
if (event.action === "action_heartrate_measure_status") {
console.log(event["status"]);
}
if (event.action === "action_stop_heartrate_result") {
console.log(event["heartrate"]);
}
});

Stop heart rate measurement mode

HS2SProModule.exitHS2SProHeartRateMeasurementMode(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_stop_heartrate_measure") {

}
});

reset device

HS2SProModule.resetDevice(mac);

notifyListener = DeviceEventEmitter.addListener(HS2SProModule.Event_Notify, (event) => {
if (event.action === "action_restore_fatory_settings") {
console.log(event["status"]);
}
});

disconnect device

HS2SProModule.disconnect(mac);

get all connected devices

HS2SProModule.getAllConnectedDevices();