Power Inspired Runtime API

This API calculates the runtime for any Power Inspired UPS, or establishes which UPS meets specific runtime criteria.

Authorisation

In order to use the API you need to register with Power Inspired. We will need to know the URLs from where the API will be accessed and a contact email.

This is a security policy in line with Cross Origin Resource Sharing (CORS) guidelines. The API can therefore only be accessed by the domains registered against the access code.

We will email you an authorisation code that needs to be sent with the JSON request.

NOTE: The system treats ssl and non-ssl different, subdomains, as well as www and non-www, and so you may need to include all variations if it is possible that the API may be called from any of these domains.

For example, you may need to include:

Format

The API is initiated as follows::

URL: https://www.powerinspired.com/apis/runtime/runtimeapi.php?runtimeCalc=JS Stringified list of parameters as detailed below

Var Details Type Options
authcodeAn authentication code(string)[Required]
wattsLoad Power in AC Watts(integer)[Required]
runtimeRequired Runtime in minutes(integer)[If given will look for a model that provides this runtime]See 1
modelUPS model(string)[If given will calculate runtime for a particular model]See 1
limittotypeUPS series(string)[Optional, will restrict results to particular UPS series. Comma delimited list.]
excludemodelsUPS model(string)[Optional, will exclude specific models from results. Comma delimited list.]
excludetypesUPS series(string)[Optional, will exclude specific model types from results. Comma delimited list.]
showallN/Abool[Optional, if set will return all matching products, not just first found per series.]
defeffDefault DC/AC Conversion Efficiency %(integer)[Optional, defaults to 84]
defsbwDefault DC standby Watts(integer)[Optional, defaults to 20]

Notes

1 If both runtime and model are provided, model will be ignored.

Returned

Returns a JSON object with the following elements:

Notes

2 The first matched may not be the best choice. You can filter by limiting to a particular model series using limittotype in the request if you want to use this.

Examples

We'll be working with some javascript like:

<script>
 var response;
 <!-- NOTE that the following MUST be in double-quotes! -->
 var obj = { "authcode":"YOURAUTHCODE", "watts":1000, "runtime":30 };
 var rtRequest = JSON.stringify(obj);
 var xmlhttp = new XMLHttpRequest();
 xmlhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
    response = JSON.parse(this.responseText);
   }
 };
 xmlhttp.open("GET", "https://www.powerinspired.com/apis/runtime/runtimeapi.php?runtimeCalc=" + rtRequest, true);
 xmlhttp.send();
</script>

Simple Runtime Calc

The simplest request is calculating the runtime for a particular model.

Let's say we want to know how long a VIS1000B will give us for a 150W load.

We put our request in object fashion into the "obj" variable. Note that all text must be enclosed in double quotes " ".

obj = { "authcode":"YOURAUTHCODE", "watts":150, "model":"VIS1000B" };

Once received and processed the response object variable will have a result response['runtime'] containing the calculated runtime in minutes.

watts: 150
model: VIS1000B
runtime: 23.486585127257

Model Search

The API will also search for a solution for a power/runtime query.

Let's look for a solution for a 200W load that we need backed up for 30minutes.

obj = { "authcode":"YOURAUTHCODE", "watts":50, "runtime":10 };

The API will return the first found model in the database, which is usually the cheapest, and a list of the first found models in every product series. watts and runtime are also returned for confirmation.

watts: 50
runtime: 10
model: VIX3065
modelarray: VIX3065,VIX1000,VIS1100RT,VIS1000B,VFI1500B,KR1000RM,KR1000LJ+1CAB,KR1000LI,TX1K

Filtering Result

It may be that certain product features are required, or a particular series or product model is not available.

You can add in the limittotype, excludemodel and excludetypes parameters to the request.

Let's say we want 10minute runtime for a 50W load, but we only stock VISB, VISRT, KRRM, KRLI and KRLJ products. Furthermore the KR2000RM is not available.

obj = { "authcode":"YOURAUTHCODE", "watts":50, "runtime":10, "limittotype":"VISB,VISRT,KRRM,KRLI,KRLJ", "excludemodel":"KR2000RM" };

Now the result has been filtered.

watts: 50
runtime: 10
model: VIS1100RT
modelarray: VIS1100RT,VIS1000B,KR1000RM,KR1000LJ+1CAB,KR1000LI

More Options

The API will select the first product in every product series, but this may not be the most appropriate. For example, there may be a more effective solution by having a lower powered unit with a battery pack, rather than a higher powered unit. Since the order of the unit is in ascending power first, then number of battery packs, a 3KVA unit will appear before a 1KVA with a battery pack.

In this case, you may wish to receive all units that match the requirement and pick out the most appropriate or perform queries on each on if required.

To do this you set the showall paramter to true.

obj = { "authcode":"YOURAUTHCODE", "watts":50, "runtime":10, "limittotype":"VISB,VISRT,KRRM,KRLI,KRLJ", "excludemodel":"KR2000RM", "showall":true };

And produces a long list of models that may require further filtering.

watts: 50
runtime: 10
model: VIS1100RT
modelarray: VIS1100RT,VIS1000B,VIS2000B,KR1000RM,KR2000RM,KR3000RM,KR1000RM+1CAB,KR2000RM+1CAB,KR3000RM+1CAB,KR1000LJ+1CAB,KR1000LJ+2CAB,KR1000LJ+3CAB,KR3000LJ+1CAB,KR3000LJ+2CAB,KR3000LJ+3CAB,KR3000LJ+4CAB,KR3000LJ+5CAB,KR1000LI,KR2000LI,KR3000LI

Series & Model Types

The following is a list of all the product series and the associated models in the database.

You can retrieve these by sending requests to the API: { "authcode":"YOURAUTHCODE", "funky":"showTypes" } or { "authcode":"YOURAUTHCODE", "funky":"showModels" }

The result is a comma delimited list in the property "typelist" or "modellist"