Integración con un colector
El API de suscripción permite establecer un destino de canal de comunicación para eventos relacionados con el estado ambiental y operativo de activos seleccionados. Es compatible con el núcleo de IoT de AWS, el centro de eventos de Azure y los canales de comunicación Webhook.
También puede crear una suscripción y acceder a sus datos en Equinix API. Consulte Stream Colocation Data from the Equinix API para obtener instrucciones.
Certificado mTLS de Equinix
El certificado MTLS se utiliza como una extensión del certificado TLS (antiguo SSL) para que el servidor y el cliente se autenticen entre sí. Equinix requiere este certificado firmado de confianza de los clientes, similar al proporcionado por nuestros servicios. Nuestros servicios de suscripción le ofrecen la opción adicional de verificación de 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 enviamos los datos es el correcto.
Para recuperar el certificado, envíe una GET solicitud al /smartview/v2/streaming/subscriptions/certificatepunto final. Especifique el destino del canal como un parámetro de consulta, o bien AWS_IOT_CORE WEBHOOK.
Ejemplo de solicitud cURL:
curl -X 'GET' 'https://api.equinix.com/smartview/v2/streaming/subscriptions/certificate?channelType=WEBHOOK' \
-H 'Authorization: Bearer <Bearer Token>'
El API de suscripción no acepta certificados autofirmados. Utilice un certificado de CA para la autenticación mutua.
AWS IoT
Envíe datos a AWS IoT Core proporcionando el punto de conexión HTTP al crear su suscripción.
Para autorizar a Equinix a enviar eventos a un destino principal de IoT de AWS, debe descargar el certificado Equinix y registrarlo en la consola principal de IoT. Consulte la documentación principal de AWS IoT para obtener instrucciones.
Centro de eventos Azure
La configuración de autoservicio para enviar datos a Azure Event Hub no está disponible. Para habilitar el envío de datos a Azure, póngase en contacto con Soporte técnico.
Webhooks
Si no desea utilizar AWS o Azure como recopilador, pero puede proporcionar una URL de destino a la que se puedan enviar datos de streaming, Equinix ofrece crear una suscripción para enviar datos a un destino genérico de webhook.
Formatos de objetos para coleccionistas
El formato de mensaje para los canales AWS IoT Core 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 suscripciones de 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"
}
}
Poder
{
"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 medidas 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 (sistema y personalizado) como parte de los datos en sí. Esto se utiliza para garantizar e informar al cliente de API que los datos de los activos de DCIM son válidos y recopilados de forma fiable. La adición de DQI proporciona transparencia en cuanto 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 DCIM están realmente casi en tiempo real o se retrasan y se envían en un momento posterior debido a una conexión interrumpida 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 Store and Forward (SNF) para almacenar el mensaje en el lado del editor. Una vez que se restablece la conexión, estos mensajes almacenados y eventos NRT se envían al cliente después del tiempo de conexión establecido. Los datos enviados más tarde debido al método SNFI, están marcados, ya que ya no son datos de 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"
}
}
Interpretación de valores ENUM y booleanos
Se puede proporcionar una hoja de cálculo Excel que incluya columnas similares a las siguientes:
| IBX | TIPO_ACTIVO | CLASIFICACIÓN_DE_ACTIVOS | ASSET_ID | TAG_SUFFIX | TAG_ID | TAG_DATA_TYPE | TAG_UOM | TAG_DISPLAY_NAME | NOMBRE_TABLA_ESTADO |
|---|---|---|---|---|---|---|---|---|---|
| TR5 | Fuego, detección de humo | Mecánico | TR5.FireAlarm_001 | alarma | TR5.FireAlarm_001:alarma | Bool | Alarma | ALARMA_NORMAL | |
| TR5 | Detección de fugas | Mecánico | TR5.LD_TR5_CABLE1 | filtracióndetectada | TR5.LD_TR5_CABLE1:fuga detectada | Bool | Fuga detectada | ALARMA_NORMAL | |
| TR5 | UPS | Eléctrico | TR5.UPS_2110 | resistente | TR5.UPS_2110:resistente | Bool | Resiliente | REDUCEDRESIL_RESILASDESIGNED |
Para los valores booleanos y ENUM, refiérase a STATE_TABLE_NAMEcuando el primer valor (NORMAL, REDUCEDRESIL) corresponde a 0, y el segundo valor (ALARM, RESILASDESIGNED) corresponde a 1.
Frecuencia de llamadas API
Para el Power API, llámenos cada 5 minutos para los centros de datos de Asia y el Pacífico, y cada 15 minutos para otras regiones. El límite es de 100.000 llamadas por usuario por día.
Para el API de suscripciones (método de recopilación REST), llámalo aproximadamente cada 30 segundos por ID de suscripción. Llamar hasta una vez cada 5 minutos es suficiente.