NAV
python shell

Introduction

Vision'air est une plateforme web permettant de monitorer les centrales de traitement d'air (CTA) de Dinactis.

Cette API existe pour permettre la comunication entre les centrales et la plateforme web, afin de pouvoir transmettre des mesures de température, pression et humidité.

Environnements

Nom URL Description
Production https://visionair.dinactis.com Environnement de production utilisé par les clients.
Staging https://visionair-staging.dinactis.com Environnement de test utilisé à des fins de développement.

Installations

Lors de l'installation d'une CTA, cette dernière doit être synchronisée avec le serveur afin de partager un token unique permettant d'identifier la centrale.

Demande d'installation

url = "https://visionair.dinactis.com/api/setups"

payload = {}
headers = {
  'Accept': 'application/json',
}

response = requests.post(url, headers=headers, data=payload)
curl -L -X POST 'https://visionair.dinactis.com/api/setups' \
--header 'Accept: application/json'

Exemple de réponse :

{
  "data": {
    "token": "30221a92af8b34209423",
    "status": "pending",
    "created_at": "2020-06-18T10:22:25.000000Z"
  }
}

Envoie une demande d'installation d'une CTA.

Le serveur retourne un token d'installation qui permettra plus tard de se renseigner sur l'état de la demande.

Requête HTTP

POST /api/setups

Paramètres

Aucun.

Réponses

Status Code Meaning
200 - OK Demande d'installation effectuée.

Information d'une installation

url = "https://visionair.dinactis.com/api/setups/0cd8682ada2eb4e65fc9"

payload = {}
headers = {
  'Accept': 'application/json'
}

response = requests.get(url, headers=headers, data=payload)
curl -L -X GET 'https://visionair.dinactis.com/api/setups/0cd8682ada2eb4e65fc9' \
--header 'Accept: application/json'

Exemple d'une réponse sur une demande en attente :

{
  "data": {
    "token": "30221a92af8b34209423",
    "status": "pending",
    "cta": null,
    "created_at": "2020-06-18T10:45:14.000000Z"
  }
}

Exemple d'une réponse sur une demande acceptée :

{
  "data": {
    "token": "30221a92af8b34209423",
    "status": "accepted",
    "cta": {
      "token": "$2y$10$fuMb0tyW9ofDpawxtFNNXOb4Of3DT4Y62sMv\/YY.RIj3DxMZdbp1O",
      "frequency": 600
    },
    "created_at":"2020-06-18T10:45:14.000000Z"
  }
}

Permet de se renseigner sur l'état d'une demande d'installation, de façon à savoir si elle est encore en attente, acceptée ou refusée par un opérateur Dinactis.

Si le status est accepted, cela signifie qu'un opérateur Dinactis a configuré la centrale sur la plateforme web (nom, client, usine, données à recevoir, etc.).

Requête HTTP

GET /api/setups/{token}

Paramètres URL

Parameter Rules
token Requis. Doit correspondre à un token d'installation.

Réponses

Status Code Meaning
200 - OK L'information est retournée.
404 - Not Found Le token envoyé ne correspond à aucune installation.

Fréquence

Obtenir la fréquence d'une CTA

url = "https://visionair.dinactis.com/api/frequency"

headers = {
  'Accept': 'application/json'
}

params = {
  'token': '$2y$10$fuMb0tyW9ofDpawxtFNNXOb4Of3DT4Y62sMv\/YY.RIj3DxMZdbp1O'
}

response = requests.get(url, headers=headers, params=params)
curl -L -X GET 'https://visionair.dinactis.com/api/frequency?token=$2y$10$fuMb0tyW9ofDpawxtFNNXOb4Of3DT4Y62sMv\/YY.RIj3DxMZdbp1O' \
--header 'Accept: application/json'

Exemple d'une réponse:

{
  "data": {
    "frequency": 600
  }
}

Retourne la fréquence de relevés d'une CTA.

Requête HTTP

GET /api/frequency

Paramètres URL

Parameter Rules
token Requis. Doit correspondre au token d'une CTA.

Réponses

Status Code Meaning
200 - OK La fréquence est retournée.
422 - Unprocessable Entity Le token envoyé est erroné.

Mesures

Envoie de mesures

url = "https://visionair.dinactis.com/api/measures"

payload = {
  "token": "$2y$10$fuMb0tyW9ofDpawxtFNNXOb4Of3DT4Y62sMv\/YY.RIj3DxMZdbp1O",
  "datetime": "2020-06-18 13:33:21",
  "data": [
    {
      "slot": 2,
      "value": 18.3
    },
    {
      "slot": 5,
      "value": 12
    },
    {
      "slot": 6,
      "value": 14
    },
  ]
}

headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.post(url, headers=headers, json=payload)

Permet d'envoyer les données issues des capteurs pour une date donnée.

Requête HTTP

POST /api/measures

Paramètres

Parameter Rules
token Requis. Doit correspondre au token d'une CTA.
datetime Requis. Date au format Y-m-d H:i:s.
data Requis. Doit être un array.
data.*.slot Nombre entre 1 et 24, représentant le slot du capteur.
data.*.value Valeur mesurée par le capteur.

Réponses

Status Code Meaning
200 - OK Measures enregistrées.
422 - Unprocessable Entity Les données envoyées sont incorrectes.

Horodatage

Obtenir l'heure du serveur

url = "https://visionair.dinactis.com/api/time"

payload = {}
headers = {
  'Accept': 'application/json'
}

response = requests.get(url, headers=headers, data=payload)
curl -L -X GET 'https://visionair.dinactis.com/api/time' \
--header 'Accept: application/json'

Exemple d'une réponse :

{
  "datetime":"2020-09-28T10:09:52.979920Z"
}

Retourne l'heure du serveur en temps universel coordonné (UTC).

L'heure est retournée sous le format ISO 8601.

Requête HTTP

GET /api/time

Paramètres URL

Aucun.

Réponses

Status Code Meaning
200 - OK L'heure est retournée.