Integración con un colector
La API de suscripción permite establecer un canal de comunicación de destino para los eventos relativos al estado medioambiental y operativo de los activos seleccionados. Es compatible con los canales de comunicación AWS IoT Core, Azure Event Hub y Webhook.
También puede crear una suscripción y acceder a sus datos en la API de Equinix. Consulte Transmisión de datos de Colocation desde la API de Equinix para obtener instrucciones.
Certificado mTLS de Equinix
El certificado mTLS se utiliza como extensión del certificado TLS (antiguo SSL) para que el servidor y el cliente se autentiquen mutuamente. Equinix exige a los clientes este certificado firmado de confianza, similar al que proporcionan nuestros servicios. Nuestros servicios de suscripción le ofrecen la opción adicional de verificación de la conexión. Cuando se envía un nuevo lote de eventos con cada intento de comunicación, nuestros servicios de suscripción utilizan los certificados proporcionados por el cliente para validar que el servicio al que estamos enviando los datos es el correcto.
Para recuperar el certificado, envíe una solicitud GET al punto final /smartview/v2/streaming/subscriptions/certificate. Especifique el destino del canal como parámetro de consulta, ya sea AWS_IOT_CORE o WEBHOOK.
Ejemplo de solicitud cURL:
curl -X 'GET' 'https://api.equinix.com/smartview/v2/streaming/subscriptions/certificate?channelType=WEBHOOK' \
-H 'Authorization: Bearer <Bearer Token>'
La API de suscripción no acepta certificados autofirmados. Utilice un certificado CA para la autenticación mutua.
AWS IoT
Envíe datos al núcleo de AWS IoT proporcionando el [punto de enlace HTTP al crear su suscripción.
Para autorizar a Equinix a enviar eventos a un destino del núcleo IoT de AWS, debe descargar el certificado Equinix y registrarlo en la consola del núcleo IoT. Consulte la [documentación de AWS Iot Core para obtener instrucciones.
Centro de eventos Azure
La configuración de autoservicio para el envío de datos a Azure Event Hub no está disponible. Para habilitar el envío de datos a Azure, póngase en contacto con el servicio de asistencia.
Webhooks
Si no desea utilizar AWS o Azure como colector, pero puede proporcionar una URL de destino a la que enviar los datos de streaming, Equinix ofrece crear una suscripción para enviar datos a un destino webhook genérico.
Formatos de objetos para coleccionistas
El formato de los mensajes para los canales del núcleo de AWS IoT y Azure Event Hubs hace que los mensajes sean más legibles. Estos son algunos ejemplos de mensajes que se envían a través de las suscripciones API Plus.
Medio ambiente - temperatura
{
"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"
}
}
Medio ambiente - humedad
{
"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"
}
}
Potencia
{
"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"
}
}
Potencia medida - 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"
}
}
Nota: Las lecturas de potencia medida están disponibles en unidades kWh, kW, kVA, A y pf (factor de potencia).
Punto de etiquetado
{
"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"
}
}
Alerta personalizada
{
"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
}
}
Alerta del sistema
{
"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
}
}
Indicadores de calidad de los datos
El campo dataQuality ofrece los indicadores de calidad de datos (DQI) de puntos de datos y alertas (de sistema y personalizadas) como parte de los propios datos. Esto se utiliza para garantizar e informar al cliente de la API de que los datos de los activos DCIM son válidos y se han recopilado de forma fiable. La adición de DQI proporciona transparencia respecto a la calidad de los datos recibidos.
Indicadores de almacenamiento y reenvío
El campo messageRetried como indicador de almacenamiento y reenvío (SNFI) se utiliza para comunicar si los datos del DCIM se envían realmente casi en tiempo real o se retrasan y envían en un momento posterior debido a una interrupción de la conexión a través del canal NRT. Si la conexión entre el cliente de suscripción y el editor tiene un problema, el editor utiliza el mecanismo de almacenamiento y reenvío (SNF) para almacenar el mensaje en el lado del editor. Una vez restablecida la conexión, estos mensajes almacenados y los eventos NRT se envían al cliente una vez transcurrido el tiempo de conexión establecido. Los datos enviados posteriormente debido al método SNFI, se marcan, ya que dejan de ser datos NRT, en comparación con otros datos normales.
Sus aplicaciones API pueden establecer reglas empresariales y tomar decisiones basadas en estos dos indicadores para mejorar la transparencia de los datos y la eficacia de la solución.
{
"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"
}
}