APP developers

APP developers

Terms

  • APPStandalone application operated locally by user/customer (Handy/Tablet/Desktop APP, Home Automation/Energy Management Systems etc.)
  • Backend – Application operated centrally by you On Premise

1. APP only

Features

  • APP/HEMS is delivered to users/customers that is operated locally
  • APP/HEMS makes the API calls directly

Here you should deliver the APP with the use of the Public API by default.

You should provide the option of specifying an API key in the configuration to enable users to register themselves if they are interested in obtaining extended functionalities.

This is for example the way, how the Home Assistant integration works.

Please keep in mind, that the result set for subscriptions have other time series steps, and handle them properly.

It is not allowed to share any API key with users/customers of your product! (It will also not work because of the rate limits for the API key.)

Check the API key if it was entered in your APP configuration against the following regular expression: /[A-Za-z0-9]{16}/ or check the API key against the validation endpoint to avoid failed API calls.

2. Backend On Promise only

Features

  • No APP is delivered to users/customers that is operated locally
  • Backend makes all API calls centrally

You can scale according to your requirements (especially API call rate limits) either

Please always plan a strategy for caching the results of the API calls.

The data should be cached for at least 15 minutes.

Please plan a short break between your API calls, so if possible do not make any simultaneous API calls to avoid running into timeouts or DDoS suspicion.

If possible, spread your API calls at least over 15 minutes.

3. APP + Backend On Promise

This a the combination of 1. and 2.

Features

  • APP/HEMS is delivered to users/customers that is operated locally
  • APP/HEMS makes the API calls never directly
  • Backend makes all API calls always centrally

It is not allowed to share any API key with users/customers of your product! (It will also not work because of the rate limits for the API key.)

So either make

  • Cyclically all API calls directly from the backend and then distribute the results to the users if necessary or
  • Use your backend as a proxy for the APP to execute the API calls on request

Please always plan a strategy for caching the results of the API calls.

The data should be cached for at least 15 minutes.

For cyclic API calls, please plan a short pause between your API calls, so if possible do not make any simultaneous API calls to avoid running into timeouts or DDoS suspicion.

If possible, spread the API calls at least over 15 minutes.