Skip to main content

Intégration avec un collecteur

L'API d'abonnement permet d'établir une destination de canal de communication pour les événements concernant 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.

note

Vous pouvez également créer un abonnement et accéder à vos données dans l'API d'Equinix. Voir [Stream Colocation Data from the Equinix API] (getoperatinginformation.md) pour les instructions.

Certificat Equinix mTLS

Le certificat mTLS est utilisé comme extension du certificat TLS (anciennement SSL) pour que le serveur et le client s'authentifient mutuellement. Equinix exige des clients ce certificat signé et fiable, similaire à celui fourni par nos services. Nos services d'abonnement vous offrent la possibilité supplémentaire de vérifier la 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 que le service auquel nous envoyons les données est le bon.

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 en tant que paramètre de requête, soit 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 CA pour l'authentification mutuelle.

AWS IoT

Envoyez des données à AWS IoT Core en fournissant le [point de terminaison HTTP] (https://docs.aws.amazon.com/iot/latest/developerguide/http.html) lors de la [création de votre abonnement] (create-subscription.md#aws-iot-core).

note

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. Reportez-vous à la [documentation AWS Iot Core] (https://docs.aws.amazon.com/iot/latest/developerguide/manual-cert-registration.html) 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 permettre l'envoi de données à Azure, veuillez contacter le support.

Crochets Web

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 continu peuvent être envoyées, Equinix propose [la création d'un abonnement pour envoyer des données vers une destination générique de webhook] (create-subscription#webhook).

Formats d'objets pour les collectionneurs

Le format des messages pour les canaux AWS IoT Core et Azure Event Hubs rend les messages plus lisibles. Voici quelques exemples de messages envoyés par le biais d'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 sont disponibles en kWh, kW, kVA, A et pf (facteur de puissance).

Point d'étiquetage

{
"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 offre les indicateurs de qualité des données (DQI) des points de données et des alertes (système et personnalisées) en tant que partie des données elles-mêmes. Cela permet de garantir et d'informer le client de l'API que les données relatives aux actifs DCIM sont valides et collectées de manière fiable. L'ajout d'indicateurs de qualité des données permet d'assurer la transparence de la qualité des données reçues.

Indicateurs Store and Forward

Le champ messageRetried en tant qu'indicateur de stockage et de transmission (SNFI) est utilisé pour communiquer si les données DCIM sont en fait presque en temps réel ou si elles sont retardées et envoyées plus tard en raison d'une connexion interrompue par le canal NRT. Si la connexion entre le client d'abonnement et l'éditeur a un problème, l'éditeur utilise le mécanisme de stockage et de transfert (SNF) pour stocker le message du côté de l'éditeur. Une fois la connexion rétablie, les messages stockés et les événements NRT sont envoyés au client après le délai de connexion établi. Les données envoyées ultérieurement grâce à la méthode SNFI sont marquées, car il ne s'agit plus de données NRT, comparées à d'autres données normales.

Vos applications API peuvent établir des règles et des décisions commerciales basées sur ces deux indicateurs afin d'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 ?