Skip to main content

Intégration à un collecteur

L'API d'abonnement permet de définir un canal de communication pour les événements relatifs à l'état environnemental et opérationnel des actifs sélectionnés. Elle prend en charge les canaux de communication AWS IoT Core, Azure Event Hub et Webhook.

remarque

Vous pouvez également créer un abonnement et accéder à vos données via l'API Equinix. Consultez le fichier Stream Colocation Data from the Equinix API pour obtenir des instructions.

Certificat mTLS Equinix

Le certificat mTLS est utilisé comme extension du certificat TLS (anciennement SSL) pour l'authentification mutuelle du serveur et du client. Equinix exige de ses clients ce certificat signé et approuvé, semblable à celui fourni par nos services. Nos services d'abonnement vous offrent une option supplémentaire de vérification de connexion. Lorsqu'un nouveau lot d'événements est envoyé à chaque tentative de communication, nos services d'abonnement utilisent les certificats fournis par le client pour valider l'identité du service auquel nous envoyons les données.

Pour récupérer le certificat, envoyez une requête GET au point de terminaison /smartview/v2/streaming/subscriptions/certificate. Spécifiez la destination du canal comme paramètre de requête: AWS_IOT_CORE ou WEBHOOK.

Exemple de requête cURL:

curl -X 'GET' 'https://api.equinix.com/smartview/v2/streaming/subscriptions/certificate?channelType=WEBHOOK' \
-H 'Authorization: Bearer <Bearer Token>'
Important

L'API d'abonnement n'accepte pas les certificats auto-signés. Utilisez un certificat d'autorité de certification pour l'authentification mutuelle.

AWS IoT

Envoyez des données à AWS IoT Core en fournissant le [point de terminaison HTTP lors de la création de votre abonnement.

remarque

Pour autoriser Equinix à envoyer des événements vers une destination AWS IoT Core, vous devez télécharger le certificat Equinix et l'enregistrer dans la console IoT Core. Consultez la [documentation AWS IoT Core pour obtenir des instructions.

Azure Event Hub

La configuration en libre-service pour l'envoi de données à Azure Event Hub n'est pas disponible. Pour activer l'envoi de données à Azure, veuillez contacter le soutien.

Webhooks

Si vous ne souhaitez pas utiliser AWS ou Azure comme collecteur, mais que vous pouvez fournir une URL cible vers laquelle les données en flux continu peuvent être envoyées, Equinix propose la création d'un abonnement pour envoyer des données vers une destination webhook générique.

Formats d'objets pour les collectionneurs

Le format des messages des canaux AWS IoT Core et Azure Event Hubs améliore la lisibilité. Voici quelques exemples de messages envoyés via les abonnements API Plus.

Environnement - température

{
"type": "environmental",
"data": {
"ibx": "CH2",
"asset": {
"id": "asset1",
"level": "ZONE"
},
"reading": {
"value": "23.300",
"unit": "CELSIUS"
},
"tag": {
"id": "temperature",
"displayName": "Temperature"
},
"readingTime": "2020-08-24T09:21:00.000Z"
}
}

Environnement - humidité

{
"type": "environmental",
"data": {
"ibx": "CH1",
"asset": {
"id": "asset1",
"level": "ZONE"
},
"reading": {
"value": "66.120",
"unit": "PERCENT"
},
"tag": {
"id": "humidity",
"displayName": "Humidity"
},
"readingTime": "2020-07-28T12:35:14.615Z"
}
}

Puissance

{
"type": "power",
"data": {
"ibx": "SP2",
"asset": {
"id": "0210:469593",
"type": "CIRCUIT"
},
"cage": "ssxxxxsss",
"cabinet": "SP2:01:021470:0210",
"accountNumber": "1000659151",
"realPower": {
"value": "0.522",
"unit": "kW"
},
"apparentPower": {
"value": "1.070",
"unit": "kVA"
},
"contractualPower": {
"value": "60.000",
"unit": "kVA"
},
"current": {
"value": "1.500",
"unit": "A"
},
"powerFactor": {
"value": "0.48",
"unit": "pf"
},
"soldCurrent": {
"value": "15.000",
"unit": "A"
},
"soldPower": {
"value": "2.880",
"unit": "kVA"
},
"powerConsumptionToContractual": {
"value": "32.151",
"unit": "PERCENT"
},
"cabinetRating": {
"value": "123.300",
"unit": "kVA"
},
"peakLastSevenDays": {
"value": "1.146",
"unit": "kVA"
},
"peakLastSevenDaysRatio": {
"value": "34.424",
"unit": "PERCENT"
},
"peakLastSevenDaysContractualPower": {
"value": "3.329",
"unit": "kVA"
},
"peakLastSevenDaysTime": "2020-07-29T07:00:00.000Z",
"lastUpdated": "2020-07-24T11:46:00.000Z",
"readingTime": "2020-07-24T11:45:00.000Z",
"description": "test description",
"oid": "1.3.6.1.2.1.299.2.10.6846",
"circuitType": "primary",
"customerName": "test customer"
}
}

Puissance mesurée - kWh

{
"type": "metered-power",
"data": {
"ibx": "LD9",
"asset": {
"id": "LD9.CBM-PDU-17-99",
"type": "Customer Billing Meter"
},
"cage": "LD9:0G:00Z13Z",
"cageSerialNo": "00Z13B-21010567",
"accountNumber": "1000006212",
"customerName": "ABC Company",
"kilowattHour": {
"value": "304574.323",
"unit": "kWh"
},
"readingTime": "2023-04-24T11:45:00.000Z",
"dataQuality": "Good"
}
}

Remarque: les relevés de puissance mesurés sont disponibles en unités kWh, kW, kVA, A et pf (facteur de puissance).

Point de repère

{
"type": "tag-point",
"data": {
"ibx": "LA1",
"reading": {
"value": "33406.6",
"unit": "l/s"
},
"tag": {
"id": "LA1.Air-Handler-7-4-4:totalsupplyairflow",
"displayName": "Total Supply Air Flow"
},
"readingTime": "2020-08-24T09:21:00.000Z"
}
}

Alerte personnalisée

{
"type": "alert",
"data": {
"ibx": "SG2",
"region": "APAC",
"asset": {
"id": "CH1.Colo.CH1_05_000550_0105",
"type": "ENVIRONMENTAL",
"classification": "Environmental"
},
"tag": {
"id": "temperature"
},
"threshold": {
"unit": "CELSIUS",
"maxValue": "-6.67",
"minValue": "-12.22"
},
"id": "zhe-15603221441540.3171591127612322145",
"triggeredTime": "2019-09-23T23:01:30.655Z",
"type": "environmental",
"typeId": "Absolute",
"conditional": "N",
"eventType": "Out of Range",
"heartbeat": false
}
}

Alerte système

{
"type": "system-alert",
"data": {
"ibx": "SG2",
"region": "APAC",
"metro": "SG",
"country": "SG",
"currentValue": {
"unit": "kWh",
"value": "2.650479E7",
"type": "float"
},
"asset": {
"id": "9SG2.ELEC4AUPSR-A10ASBF0",
"type": "Circuit Breaker with Metering",
"classification": "Electrical"
},
"tag": {
"id": "SG2.ELEC5BUPSR-B14UAH2Q:breaker",
"displayName": "Bypass Not Available"
},
"conditionName": "Low",
"status": {
"acknowledged": true,
"acknowledgementTime": "2020-07-28T12:35:14.615Z",
"cleared": false,
"active": false
},
"threshold": {
"unit": "kWh",
"stateLimit": "80",
"message": "Drive not in Auto"
},
"severity": 820,
"triggeredTime": "2020-07-28T12:35:14.615Z",
"processedTime": "2020-07-28T12:35:14.615Z",
"normalProcessedTime": "2020-07-28T12:35:14.615Z",
"normalTriggeredTime": "2020-07-28T12:35:14.615Z",
"type": "Digital",
"heartbeat": false
}
}

Indicateurs de qualité des données

Le champ dataQuality fournit les indicateurs de qualité des données (DQI) des points de données et des alertes (système et personnalisées) directement dans les données. Cela permet de garantir au client API que les données relatives aux actifs DCIM sont valides et recueillies de manière fiable. L'ajout des DQI assure une transparence quant à la qualité des données reçues.

Indicateurs de stockage et de transfert

Le champ messageRetried, indicateur de stockage et de retransmission (SNFI), permet de déterminer si les données DCIM sont quasi en temps réel ou si elles sont retardées et envoyées ultérieurement en raison d'une interruption de connexion par le canal NRT. En cas de problème de connexion entre le client abonné et l'éditeur, ce dernier utilise le mécanisme de stockage et de retransmission (SNF) pour stocker le message. Une fois la connexion rétablie, ces messages stockés et les événements NRT sont envoyés au client après le délai de rétablissement de la connexion. Les données envoyées plus tard en raison de la méthode SNFI sont marquées comme n'étant plus des données NRT, contrairement aux données normales.

Vos applications API peuvent créer des règles et des décisions d'affaires basées sur ces deux indicateurs pour améliorer la transparence des données et l'efficacité de la solution.

{
"messageRetried": true,
"type": "tag-point",
"data": {
"ibx": "SG2",
"reading": {
"value": "54.0",
"unit": "s"
},
"tag": {
"id": "SG2.UPS-5-RM A22-04:batterytimeremaining",
"displayName": "Battery Time Remaining"
},
"readingTime": "2021-03-25T03:48:00.510Z",
"dataQuality": "Good"
}
}
Cette page vous a-t-elle été utile ?