Aller au contenu principal
Camille
Release notes
Camille
Responsable Marketing & Communication
Publié le19 mars 2024
Versionv3.2

Synthèse intelligente des équipements, gestion des contrats et analytics exportables

Nouvelles fonctionnalités

Un nouveau widget pour créer une synthèse dynamique des informations de vos équipements

Créez facilement des synthèses dynamiques de vos équipements, sans avoir à configurer chaque widget manuellement, grâce au nouveau widget Liste de produits intelligente. La liste intelligente affiche automatiquement les widgets et les variables prédéfinies pour chaque équipement sélectionné.

astuce
  • Pensez à autoriser la sélection multiple d'équipement au niveau de la configuration de l'arborescence de votre Dashboard pour permettre de sélectionner les produits à volonté
  • Vous pouvez aussi utiliser les tags au niveau de la configuration du widget liste de produits intelligente pour que la sélection des équipements/variables à afficher s'adapte automatiquement au tag choisi. Ainsi, un nouvel équipement portant ce tag sera automatiquement intégré à la liste.

Gestion simplifiée des contrats client sur les produits

Une information qui intéressera surtout les tiers de maintenance et les parcs de machines en location, de nouveaux champs pour le numéro et la date du contrat sont désormais disponibles. Configurez facilement les contrats associés à vos produits directement depuis l'interface d'administration. Il est possible d'afficher ces informations lors de la génération de rapport au travers des widgets Information produit ou TextBox.

Numéro de contrat - Vue admin
Visualisation du numéro de contrat au sein d'Administration
Cliquer pour ouvrir
Numéro de contrat - Vue dashboard
Visualisation du numéro de contrat au sein d'AppBuilder
Cliquer pour ouvrir

Récupération des statistiques en format CSV / XLSX par compte entreprise

Analysez facilement l'utilisation de la plateforme en récupérant vos statistiques au niveau du Corporate Account en format CSV / XLSX.

Nouveau format - Vue admin
Export des statistiques de votre compte
Cliquer pour ouvrir

Améliorations & Corrections

Récupération des données pour charger les tableaux de bord plus rapidement

Nous avons optimisé la récupération des données pour accélérer le chargement de vos tableaux de bord, améliorant ainsi votre expérience utilisateur.

Gestion des Providers

Nous facilitons désormais l'intégration d'autres plateformes grâce à notre système de gestion des Providers. Vous pouvez maintenant connecter votre plateforme à d'autres services de manière plus fluide pour enrichir votre expérience IoT.

Breaking changes

Modification API

Suppression des API dépréciées - 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.2, 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.


Changelog

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
  • 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.1.2
  • 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.1.2 - 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": "2023-11-06T10: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": "2025-11-27T16:17:57.042Z",
"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 (2023-11-06T10:08:56Z) ou timestamp Unix (1699265336).


Illustration IoT magic Builder

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