Aller au contenu principal

Un article tagués avec « api »

Voir tous les tags
Camille
Release notes
Camille
Responsable Marketing & Communication
Publié le10 juin 2024
Versionv3.3

Branding personnalisable et import de données en masse

Nouvelles fonctionnalités

Vous pouvez désormais choisir le nom de vos applications dans l'IoT magic Builder

Personnalisez votre expérience utilisateur en renommant vos applications directement depuis le module branding. Vous pouvez définir le nom de l'application, le logo affiché dans l'onglet du navigateur et l'icône visible dans le portail. Une manière simple et efficace de renforcer votre identité de marque sur notre plateforme.

Fonctionnalité branding
Fonctionnalité branding
Cliquer pour ouvrir

Import de données en masse dans la plateforme

Gagnez du temps avec notre nouvelle fonctionnalité d'import de masse de données.

2 manières de procéder possibles à votre disposition :

Via la nouvelle API d'import de masse de données

Vous pouvez désormais importer vos données en masse en utilisant des fichiers CSV ou XLSX. Que ce soit pour des mises à jour régulières ou des intégrations initiales, cette fonctionnalité facilite la gestion de vos données à grande échelle.

Via notre nouvelle interface d'import de donnée

Obtenez un template de fichier des données de votre produit, spécialement conçu pour faciliter l'intégration des données historiques en masse, grâce au bouton d'export. Téléchargez le fichier au format XLSX, remplissez-le et ré-importez-le directement dans la plateforme.

Import de données en masse
Import de données en masse
Cliquer pour ouvrir
astuce

Vous pouvez sélectionner plusieurs produits simultanément pour télécharger le fichier de template, qui aura alors simplement plusieurs onglets à remplir ! Importez les données pour plusieurs produits en une seule opération. Le mapping des données réimportées se fait automatiquement par la plateforme ensuite.


Changelog

Amélioration & corrections

Connecteur générique

Certaines routes de l'API du connecteur générique, dépréciées depuis la version 3.0, sont supprimées. Les scripts et applications utilisant ces routes doivent être mis à jour avant la livraison de la version 3.3, sans quoi les appels vers les routes actuellement dépréciées ne fonctionneront plus. Les DTOs (body & réponses) sont aussi modifiées, il conviendra d'adapter les appels en fonction.

Le fichier openapi3_0.json peut être utilisé afin de visualiser les routes dépréciées et les nouvelles routes.

Spécification OpenAPI

Téléchargement

Vous pouvez télécharger la spécification complète de l'API au format OpenAPI 3.0 :

📄 Télécharger openapi3_0.json

Visualisation

Voir un aperçu de la spécification OpenAPI

Cette API utilise OpenAPI 3.0.0 et comprend les contrôleurs suivants :

Endpoints disponibles :

  • Streams - Gestion des flux de données (deprecated)
  • Alarms - Gestion des alarmes
  • Alarm Histories - Historique des alarmes
  • Data Points - Points de données (recommandé)
  • Variables - Statistiques des variables
  • Health Check - Vérification de santé du service

Informations API :

  • Titre : IoT Framework Generic Connector
  • Version : 3.3.0
  • Sécurité : OAuth2 (Authorization Code Flow)

Pour une utilisation complète, importez le fichier JSON dans un outil compatible OpenAPI comme Swagger Editor, Postman, ou Insomnia.

Liens utiles :


IoT Framework Generic Connector API

Version 3.3.0 - OAS 3.0

Cette release inclut la documentation complète de l'API IoT Framework Generic Connector.


Streams

POST /api/streams ⚠️ Deprecated

Recherche les flux de données pour un équipement donné, correspondant aux filtres.

Paramètres:

NomTypeLocalisationDescription
x-iot-corporateaccountuuidstringheaderUUID du compte entreprise (requis)

Corps de la requête:

{
"from": "string",
"to": "string",
"timezone": "string",
"useDeviceLocalTimezone": true,
"granularity": {},
"series": [
{
"deviceUuid": "string",
"itemType": "string",
"itemIndex": "string",
"serviceId": "string",
"aggregation": {}
}
],
"paging": {
"pageNumber": 0,
"itemsPerPage": 0
},
"pagingOrder": "string"
}

Réponses:

  • 201 Created
{
"from": "",
"to": "",
"timezone": "string",
"useDeviceLocalTimezone": true,
"granularity": {},
"series": [
{
"deviceUuid": "string",
"variableUuid": "string",
"itemType": "string",
"itemIndex": "string",
"serviceId": "string",
"aggregation": {},
"dataType": {},
"deviceTimeZone": "string",
"data": [
{
"at": "string",
"value": "number | string"
}
]
}
],
"paging": {
"pageNumber": 0,
"itemsPerPage": 0
},
"pagingOrder": "string"
}
  • 400 Bad Request - Paramètres invalides
  • 404 Not Found - Ressources non trouvées
  • 409 Conflict - Erreur lors de la requête
POST /api/streams/publish ⚠️ Deprecated

Publie un tableau de données. Deprecated - Utilisez le contrôleur Data Points.

Paramètres:

NomTypeLocalisationDescription
x-iot-corporateaccountuuidstringheaderUUID du compte entreprise (requis)

Corps de la requête:

{
"at": "string",
"deviceUuid": "string",
"data": [
{
"itemType": "string",
"itemIndex": "string",
"serviceId": "string",
"type": "string",
"at": "string",
"q": 0,
"value": 0,
"oldValue": 0,
"result": 0
}
]
}

Réponses:

  • 201 Created - Données publiées avec succès
  • 400 Bad Request - Paramètres invalides
  • 404 Not Found - Ressources non trouvées
  • 409 Conflict - Erreur lors de la requête

Data Points

POST /api/ca/{corporateAccountUuid}/devices/{deviceUuid}/datapoints

Envoie des données aux variables selon l'UUID donné.

Paramètres:

NomTypeLocalisationDescription
corporateAccountUuidstringpathUUID du compte entreprise (requis)
deviceUuidstringpathUUID de l'équipement (requis)

Corps de la requête:

{
"dataset": [
{
"variableUuid": "string",
"data": [
{
"date": "2024-06-10T10:08:56Z",
"value": "string"
}
]
}
]
}

Réponses:

  • 200 OK
{
"result": "string"
}
  • 400 Bad Request - Paramètres invalides
  • 404 Not Found - Ressources non trouvées
  • 409 Conflict - Erreur lors de la requête
POST /api/ca/{corporateAccountUuid}/last-values-request

Recherche les dernières valeurs de plusieurs variables.

Paramètres:

NomTypeLocalisationDescription
corporateAccountUuidstringpathUUID du compte entreprise (requis)

Corps de la requête:

{
"timezone": "UTC",
"granularity": "raw",
"variableUuids": [],
"deviceUuids": [],
"itemType": "Global",
"itemIndex": "0",
"serviceIds": []
}

Réponses:

  • 200 OK
{
"results": [
{
"deviceUuid": "string",
"variableUuid": "string",
"unit": "string",
"serviceId": "string",
"itemType": "string",
"itemIndex": "string",
"aggregation": {},
"dataType": {},
"data": [
{
"at": "string",
"value": "number | string"
}
]
}
]
}
  • 400 Bad Request - Paramètres invalides
  • 404 Not Found - Ressources non trouvées
  • 409 Conflict - Erreur lors de la requête
POST /api/ca/{corporateAccountUuid}/datapoints-request

Recherche des points de données avec filtres et pagination.

Paramètres:

NomTypeLocalisationDescription
corporateAccountUuidstringpathUUID du compte entreprise (requis)

Corps de la requête:

{
"from": 0,
"to": 0,
"timezone": "UTC",
"granularity": "raw",
"paging": {
"pageNumber": 0,
"itemsPerPage": 0
},
"pagingOrder": "string",
"aggregations": ["sum"],
"variableUuids": [],
"deviceUuids": [],
"itemType": "Global",
"itemIndex": "0",
"serviceIds": []
}

Réponses:

  • 200 OK - Résultats de la recherche
  • 400 Bad Request - Paramètres invalides
  • 404 Not Found - Ressources non trouvées
  • 409 Conflict - Erreur lors de la requête
GET /api/ca/{corporateAccountUuid}/devices/{deviceUuid}/last-values ⚠️ Deprecated

Recherche les dernières valeurs pour un équipement donné.

Paramètres:

NomTypeLocalisationDescription
corporateAccountUuidstringpathUUID du compte entreprise (requis)
deviceUuidstringpathUUID de l'équipement (requis)
serviceIdsstringqueryListe des identifiants de service (ex: 140000,141000)
itemTypestringqueryType d'élément (ex: Global)
itemIndexstringqueryIndex d'élément (ex: 0)
languagestringqueryLangue pour les traductions de variables

Réponses:

  • 200 OK
{
"devices": [
{
"deviceUuid": "string",
"deviceTimeZone": "string",
"values": [
{
"serviceGroup": "string",
"serviceType": "string",
"value": "string",
"unit": "string",
"date": "2024-06-10T10:00:00.000Z",
"serviceId": "string",
"title": "string",
"itemType": "string",
"itemIndex": "string",
"itemName": "string",
"deviceUuid": "string",
"deviceName": "string",
"variableUuid": "string"
}
]
}
]
}
  • 400 Bad Request - Paramètres invalides
  • 404 Not Found - Ressources non trouvées
  • 409 Conflict - Erreur lors de la requête
PUT /api/ca/{corporateAccountUuid}/last-values ⚠️ Deprecated

Recherche les dernières valeurs pour plusieurs équipements.

Paramètres:

NomTypeLocalisationDescription
corporateAccountUuidstringpathUUID du compte entreprise (requis)

Corps de la requête:

{
"devices": [
{
"deviceUuid": "string",
"itemType": "string",
"itemIndex": "string",
"serviceIds": ["string"]
}
],
"language": "string"
}

Réponses:

  • 200 OK - Dernières valeurs récupérées
  • 400 Bad Request - Paramètres invalides
  • 404 Not Found - Ressources non trouvées
  • 409 Conflict - Erreur lors de la requête
PUT /api/ca/{corporateAccountUuid}/datapoints ⚠️ Deprecated

Recherche les flux de données pour un équipement donné.

Paramètres:

NomTypeLocalisationDescription
corporateAccountUuidstringpathUUID du compte entreprise (requis)

Corps de la requête:

{
"from": "string",
"to": "string",
"timezone": "string",
"useDeviceLocalTimezone": true,
"granularity": {},
"series": [
{
"deviceUuid": "string",
"itemType": "string",
"itemIndex": "string",
"serviceId": "string",
"aggregation": {}
}
],
"paging": {
"pageNumber": 0,
"itemsPerPage": 0
},
"pagingOrder": "string"
}

Réponses:

  • 200 OK - Flux de données récupérés
  • 400 Bad Request - Paramètres invalides
  • 404 Not Found - Ressources non trouvées
  • 409 Conflict - Erreur lors de la requête

Tableau de correspondance des routes API

Ancienne routeNouvelle route à utiliser
POST /api/streamsPOST /api/ca/{corporateAccountUuid}/datapoints-request
POST /api/streams/publishPOST /api/ca/{corporateAccountUuid}/devices/{deviceUuid}/datapoints
GET /api/ca/{corporateAccountUuid}/devices/{deviceUuid}/last-valuesPOST /api/ca/{corporateAccountUuid}/last-values-request
PUT /api/ca/{corporateAccountUuid}/lastvaluesPOST /api/ca/{corporateAccountUuid}/last-values-request
PUT /api/ca/{corporateAccountUuid}/datapointsPOST /api/ca/{corporateAccountUuid}/datapoints-request

Notes importantes

Endpoints dépréciés

Plusieurs endpoints sont marqués comme deprecated. Il est recommandé d'utiliser les nouveaux endpoints du contrôleur Data Points pour les nouvelles intégrations.

Format des dates

Les dates peuvent être au format ISO 8601 (2024-06-10T10:08:56Z) ou timestamp Unix (1718013336).


Illustration IoT magic Builder

Merci d'utiliser IoT magic Builder. Pour toute question ou assistance, veuillez contacter notre support technique.