ThingIFAPI

ThingIFAPI

ThingIFAPI represent an API instance to access Thing-IF APIs for a specified target

Constructor

new ThingIFAPI(owner, token, app, targetopt)

Parameters:
Name Type Attributes Description
owner string Specify who uses the ThingIFAPI
token string A token can access Thing-IF APIs, which can be admin token or token of a registered kii user.
app App App instance of existing Kii App. You must create a app in Kii developer portal
target TypedID <optional>
TypedID for a specified target.

Members

app

App instance about Kii App.

target

TypeID of target.

token

Access token.

Methods

aggregate(request, onCompletionopt) → {Promise}

Aggregate history states of thing.
Parameters:
Name Type Attributes Description
request AggregateGroupedHistoryStatesRequest request object.
onCompletion function <optional>
Callback function when completed.
Returns:
Type:
Promise
promise object.

deleteTrigger(triggerID, functionopt) → {Promise}

Delete a specified trigger. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
triggerID string ID of trigger.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.deleteTrigger("Trigger ID").then(function(deletedTriggerID) {
  // Do something
}).catch(function(err){
  // Error handling
});

enableTrigger(triggerID, enable, functionopt) → {Promise}

Enable/Disable a specified trigger. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
triggerID string ID of trigger.
enable boolean True to enable, otherwise, disable the trigger.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.enableTrigger("Trigger ID", true).then(function(trigger) {
  // Do something
}).catch(function(err){
  // Error handling
});

getCommand(commandID, functionopt) → {Promise}

Retrieve command with specified ID. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
commandID string Command ID to retrieve.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.getCommand("CommandID").then(function(command) {
  // Do something
}).catch(function(err){
  // Error handling
});

getFirmwareVersion(onCompletionopt) → {Promise}

Get firmware version of the thing. If firmware version is not set, then null is resolved.
Parameters:
Name Type Attributes Description
onCompletion function <optional>
Callback function when completed
Returns:
Type:
Promise
promise object.

getState(aliasopt, functionopt) → {Promise}

Get State of specified target. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
alias string <optional>
Trait alias of state to query. If provided, only states of the specified alias returned.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.getState().then(function(state) {
  // Do something
}).catch(function(err){
  // Error handling
});

getThingType(onCompletionopt) → {Promise}

Get thingType to use trait for the thing. If thing type is not set, null is resolved.
Parameters:
Name Type Attributes Description
onCompletion function <optional>
Callback function when completed
Returns:
Type:
Promise
promise object.

getTrigger(triggerID, functionopt) → {Promise}

Retrieve trigger. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
triggerID string ID of trigger.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.getTrigger("TriggerID").then(function(trigger) {
  // Do something
}).catch(function(err){
  // Error handling
});

getVendorThingID(functionopt) → {Promise}

Get vendorThingID of specified target **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.getVendorThingID().then(function(vendorThingID) {
  // Do something
}).catch(function(err){
  // Error handling
});

groupedQuery(request, onCompletionopt) → {Promise}

Query grouped history states of thing based on data grouping intervals.
Parameters:
Name Type Attributes Description
request QueryGroupedHistoryStatesRequest request object.
onCompletion fuction <optional>
Callback function when completed.
Returns:
Type:
Promise
promise object.

installFCM(installationRegistrationID, development, functionopt) → {Promise}

Register the id issued by Firebase Cloud Message to Kii cloud for kii user.
Parameters:
Name Type Attributes Description
installationRegistrationID string The ID of registration that identifies the installation externally.
development boolean Indicates if the installation is for development or production environment.
function onCompletion <optional>
Callback function when completed.
Returns:
Type:
Promise
promise object.
Example
api.installFCM("Registration ID", false).then(function(installationID) {
  // Do something
}).catch(function(err){
  // Error handling
});

listCommands(listOptions, functionopt) → {Promise}

Retrieve commands. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
listOptions Object Options to retrieve commands.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.listCommands().then(function(queryResult) {
  if (queryResult.hasNext) {
    // Handle more results
  }
  // Do something
  var commands = queryResult.results;
}).catch(function(err){
  // Error handling
});

listServerCodeExecutionResults(triggerID, listOptions, functionopt) → {Promise}

Retrieve execution results of server code trigger. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
triggerID string ID of trigger.
listOptions Object Options to retrieve.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.listServerCodeExecutionResults("Trigger ID").then(function(queryResult) {
  if (queryResult.hasNext) {
    // Handle more results
  }
  // Do something
  var executionResults = queryResult.results;
}).catch(function(err){
  // Error handling
});

listTriggers(listOptions, functionopt) → {Promise}

Retrive triggers. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
listOptions ListQueryOptions instance to ListQueryOptions.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.listTriggers().then(function(queryResult) {
  if (queryResult.hasNext) {
    // Handle more results
  }
  // Do something
  var triggers = queryResult.results;
}).catch(function(err){
  // Error handling
});

onboardWithThingID(onboardRequest, functionopt) → {Promise}

Onboard Thing by thingID for the things already registered on Kii Cloud.
Parameters:
Name Type Attributes Description
onboardRequest Object Necessary fields when request onboarding
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
var owner = new ThingIF.TypedID(ThingIF.Types.User, "Your UserID");
var app = new ThingIF.App("Your AppID", "Your AppKey", ThingIF.Site.US);
var api = new ThingIF.ThingIFAPI(owner, "Your user's acess token", app);
var thingID = "Your thing's ID";
var password = "Your thing's password";
var request = new ThingIF.OnboardWithThingIDRequest(thingID, password, owner);
api.onboardWithThingID(request).then(function(result){
  // Do something
}).catch(function(err){
  // Error handling
});

onboardWithVendorThingID(onboardRequest, functionopt) → {Promise}

Onboard Thing by vendorThingID
Parameters:
Name Type Attributes Description
onboardRequest Object request body when request onboarding
function onCompletion <optional>
callback function when completed
Returns:
Type:
Promise
promise object
Example
// Assume user is already exist and you have User ID and Access token.
var owner = new ThingIF.TypedID(ThingIF.Types.User, "Your UserID");
var app = new ThingIF.App("Your AppID", "Your AppKey", ThingIF.Site.US);
var api = new ThingIF.ThingIFAPI(owner, "Your user's acess token", app);
var vendorThingID = "Your thing's vendor thing ID";
var password = "Your thing's password";
var request = new ThingIF.OnboardWithVendorThingIDRequest(vendorThingID, password, owner);
api.onboardWithVendorThingID(request).then(function(result){
  // Do something
}).catch(function(err){
  // Error handling
});

patchCommandTrigger(triggerID, requestObject, functionopt) → {Promise}

Update a command trigger. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned. When thing related to this ThingIFAPI instance meets condition described by predicate, A registered command sends to thing related to target. `target` property and commandTarget in requestObject must belong to same owner.
Parameters:
Name Type Attributes Description
triggerID string ID of trigger.
requestObject Object The fields of trigger to be updated.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
var condition = new ThingIF.Condition(new ThingIF.Equals("power", "false"));
var statePredicate = new ThingIF.StatePredicate(condition, ThingIF.TriggersWhen.CONDITION_CHANGED);
// if commandTargetID can be different with api.target
var commandTargetID = new ThingIF.TypedID(ThingIF.Types.Thing, "another thing to receive command");
var triggerCommandObject = new ThingIF.TriggerCommandObject("led2", 2, [{setBrightness: {brightness:50}}], commandTargetID);
var request = new ThingIF.PatchCommandTriggerRequest(triggerCommandObject, statePredicate);
api.patchCommandTrigger("Trigger ID", request).then(function(trigger) {
  // Do something
}).catch(function(err){
  // Error handling
});

patchServerCodeTrigger(triggerID, requestObject, functionopt) → {Promise}

Update a servercode trigger. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
triggerID string ID of trigger.
requestObject Object The fields of trigger to be updated.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
var serverCode = new ThingIF.ServerCode("function_name", null, null, {param1: "hoge"});
var condition = new ThingIF.Condition(new ThingIF.Equals("power", "false"));
var statePredicate = new ThingIF.StatePredicate(condition, ThingIF.TriggersWhen.CONDITION_CHANGED);
var request = new ThingIF.PatchServerCodeTriggerRequest(serverCode, statePredicate);
api.patchServerCodeTrigger("Trigger ID", request).then(function(trigger) {
  // Do something
}).catch(function(err){
  // Error handling
});

postCommandTrigger(requestObject, functionopt) → {Promise}

Post a new command trigger. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned. When thing related to this ThingIFAPI instance meets condition described by predicate, A registered command sends to thing related to target. `target` property and commandTarget in requestObject must belong to same owner.
Parameters:
Name Type Attributes Description
requestObject Object Necessary fields for new command trigger. `_owner` property is used as IssuerID. So even if IssuerID is provided in requestObject, it will be ignored. If requestObject.command.targetID is not provide or null, `_target` property will be used by default.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
// commandTargetID can be different with api.target.
var commandTargetID = new ThingIF.TypedID(ThingIF.Types.Thing, "another thing to receive command");
var condition = new ThingIF.Condition(new ThingIF.Equals("power", "false"));
var statePredicate = new ThingIF.StatePredicate(condition, ThingIF.TriggersWhen.CONDITION_CHANGED);
var triggerCommandObject = new ThingIF.TriggerCommandObject("Schema name", 1, [{turnPower: {power:true}}], commandTargetID);
var request = new ThingIF.PostCommandTriggerRequest(triggerCommandObject, statePredicate);
api.postCommandTrigger(request).then(function(trigger) {
  // Do something
}).catch(function(err){
  // Error handling
});

postNewCommand(command, functionopt) → {Promise}

Post a new command. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
command Object Necessary fields for new command
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
var request = new ThingIF.PostCommandRequest("led", 1, [{turnPower: {power:true}}]);
api.postNewCommand(request).then(function(command) {
  // Do something
}).catch(function(err){
  // Error handling
});

postServerCodeTrigger(requestObject, functionopt) → {Promise}

Post a new servercode trigger. **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
requestObject PostServerCodeTriggerRequest Necessary fields for new servercode trigger.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
var serverCode = new ThingIF.ServerCode("function_name", null, null, {param1: "hoge"});
var condition = new ThingIF.Condition(new ThingIF.Equals("power", "false"));
var statePredicate = new ThingIF.StatePredicate(condition, ThingIF.TriggersWhen.CONDITION_CHANGED);
var request = new ThingIF.ServerCodeTriggerRequest(serverCode, statePredicate);
api.postServerCodeTrigger(request).then(function(trigger) {
  // Do something
}).catch(function(err){
  // Error handling
});

query(request, onCompletionopt) → {Promise}

Query history states of thing.
Parameters:
Name Type Attributes Description
request QueryHistoryStatesRequest parameters to do query.
onCompletion function <optional>
Callback function when completed
Returns:
Type:
Promise
promise object.

uninstallPush(installationID, functionopt) → {Promise}

Unregister the push settings by the id(issued by KiiCloud) that is used for installation.
Parameters:
Name Type Attributes Description
installationID string The ID of the installation issued by KiiCloud.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object.
Example
api.uninstallPush("Installation ID").then(function() {
  // Do something
}).catch(function(err){
  // Error handling
});

updateFirmwareVersion(firmwareVersion, functionopt) → {Promise}

Update firmware version of the thing
Parameters:
Name Type Attributes Description
firmwareVersion string New firmware version.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object.

updateThingType(thingType, onCompletionopt) → {Promise}

Update thingType to use trait for the thing.
Parameters:
Name Type Attributes Description
thingType string Name of ThingType, which should be already defined.
onCompletion function <optional>
Callback function when completed
Returns:
Type:
Promise
promise object.

updateVendorThingID(newVendorThingID, newPassword, functionopt) → {Promise}

Update vendorThingID of specified target **Note**: Please onboard first, or provide a target when constructor ThingIFAPI. Otherwise, error will be returned.
Parameters:
Name Type Attributes Description
newVendorThingID string New vendorThingID of target to be updated.
newPassword string New password of target to be updated.
function onCompletion <optional>
Callback function when completed
Returns:
Type:
Promise
promise object
Example
api.updateVendorThingID("New vendor thing ID", "New Password").then(function() {
  // Do something
}).catch(function(err){
  // Error handling
});