Novedad: el cortafuegos de IA supervisa cada módulo y explica cada incidente con palabras sencillas. Vea cómo funciona

API de telemetría y atributos

Lea los últimos valores y el historial, liste las claves de un dispositivo y lea, escriba y elimine atributos de servidor y compartidos por REST, con reglas de claves y errores.

La telemetría son los valores que los dispositivos miden y envían a lo largo del tiempo. Los atributos son valores con nombre que describen un dispositivo: lo que informa sobre sí mismo (cliente), lo que usted almacena sobre él (servidor) y lo que quiere que tenga (compartido). Esta página enumera las rutas REST de ambos. Las rutas cuelgan de https://<su host>/tenant/<tenantId>.

La API REST lee telemetría, pero nunca la escribe. Los dispositivos escriben telemetría por MQTT o HTTP; los flujos escriben valores derivados con Save telemetry. Consulte Device HTTP API y Derived values.

Rutas de telemetría

MétodoRutaPermisoFunción
GET/api/telemetry/latesttelemetry.readEl último valor de cada clave de un dispositivo
GET/api/telemetry/seriestelemetry.readHistorial de hasta 50 claves en un intervalo
GET/api/telemetry/kindstelemetry.readLos tipos de lecturas de su organización (por ejemplo iot_device)
GET/api/iot/devices/{deviceId}/elementstelemetry.readLas claves de un dispositivo, declaradas en su perfil o enviadas, como máximo 300

Un dispositivo que no puede leer responde 404, igual que un dispositivo que no existe.

Últimos valores

GET /api/telemetry/latest?kind=iot_device&entityId={deviceId}&keys=temperature,humidity

Omita keys (como máximo 50) para obtener todas las claves.

{
  "kind": "iot_device",
  "entityId": "6f1c…",
  "latest": {
    "temperature": { "ts": 1762681200000, "value": 21.5 },
    "humidity": { "ts": 1762681200000, "value": 40 }
  }
}

Historial

GET /api/telemetry/series?kind=iot_device&entityId={deviceId}&keys=temperature&from=1762594800000&to=1762681200000&bucket=1h&agg=max
ParámetroValoresPredeterminado
keysDe 1 a 50, separados por comasobligatorio
from, tomilisegundos desde la época; to posterior a fromobligatorio
bucketauto, raw, 1m, 1h, 1dauto
aggavg, min, max, last, sum, count, increaseavg
limitpuntos por clave, de 1 a 10,00010,000

Los buckets diarios son días UTC: para días en su propia zona horaria, lea los buckets horarios y súmelos. Los valores en bruto se conservan como máximo 90 días, y los buckets de minuto como máximo 31 días. Las reglas completas de parámetros, la paginación de valores en bruto y ejemplos prácticos están en The history API.

Las claves de un dispositivo

GET /api/iot/devices/{deviceId}/elements

La respuesta enumera los elementos del dispositivo con sus etiquetas y las claves que tiene, declaradas en su perfil o enviadas, como máximo 300. Sin el permiso para leer perfiles de dispositivo, solo se enumeran las claves que el dispositivo ha enviado.

Rutas de atributos

MétodoRutaPermisoFunción
GET/api/iot/devices/{deviceId}/attributesiot_device.attributes.readLee los atributos de todos los ámbitos
POST/api/iot/devices/{deviceId}/attributes/serveriot_device.attributes.writeEscribe atributos de servidor
POST/api/iot/devices/{deviceId}/attributes/sharediot_device.attributes.writeEscribe atributos compartidos; el dispositivo los recibe
DELETE/api/iot/devices/{deviceId}/attributes/{scope}?keys=a,biot_device.attributes.writeElimina claves de servidor o compartidas

Los atributos de cliente solo los escribe el dispositivo. Una escritura en client responde 405: «Client attributes are written by the device only.»

Leer

GET /api/iot/devices/{deviceId}/attributes?scope=server&keys=maxTempThreshold,site_code

scope es client, shared o server (en cualquier forma de mayúsculas); omítalo para los tres. keys admite hasta 100 claves.

{
  "attributes": {
    "client": { "fw_version": { "value": "2.4.1", "updatedAt": 1762594800000 } },
    "shared": { "reportInterval": { "value": 60, "updatedAt": 1762500000000 } },
    "server": { "maxTempThreshold": { "value": 8, "updatedAt": 1762400000000 } }
  }
}

Los ajustes que gestiona la pestaña Settings de un dispositivo (claves cfg.* en dispositivos que reciben ajustes por secciones) no se muestran aquí; léalos mediante las rutas de ajustes del dispositivo, consulte Firmware and device settings API.

Escribir

POST/tenant/{tenantId}/api/iot/devices/{deviceId}/attributes/server

Un objeto JSON plano de claves y valores: de 1 a 100 claves por solicitud. Un valor puede ser un número, texto, booleano, objeto o lista, pero no null (elimine la clave en su lugar). Solo se almacenan las claves cuyo valor cambió; la respuesta las indica. Cada cambio llega a los flujos como un mensaje attributes_updated y se registra en el registro de auditoría (las claves, nunca los valores).

Cuerpo de la solicitud application/json

{
    "maxTempThreshold": 8,
    "site_code": "IST-04"
}

Ejemplo curl

curl -X POST 'https://<your-host>/tenant/{tenantId}/api/iot/devices/{deviceId}/attributes/server' \
  -H 'Content-Type: application/json' \
  -d '{"maxTempThreshold":8,"site_code":"IST-04"}'

Respuestas

200OK
{
    "changed": [
        "maxTempThreshold",
        "site_code"
    ]
}
400Bad Request
{
    "message": "One or more attribute keys are invalid or reserved.",
    "code": "VALIDATION_ERROR",
    "details": {
        "reason": "keys_invalid",
        "keys": [
            {
                "key": "fw_title",
                "reason": "reserved"
            }
        ]
    }
}
404Not Found
{
    "message": "Device not found.",
    "code": "NOT_FOUND"
}

Los atributos compartidos se envían al dispositivo de inmediato si está conectado; si no, cuando se conecte. Un valor compartido debe caber en el límite de downlink del perfil del dispositivo: «An attribute value is larger than the device’s downlink limit.» (details.reason = value_too_large).

Eliminar

DELETE /api/iot/devices/{deviceId}/attributes/shared?keys=reportInterval,mode

La respuesta es { "deleted": ["mode", "reportInterval"] }, las claves que existían. Se informa al dispositivo de las claves compartidas eliminadas.

Reglas de las claves de atributo

ReglaDetalle
Caracteresletras, dígitos, _, ., -; de 1 a 128; distingue mayúsculas y minúsculas
Nuncadeleted; una clave que empiece por _
Reservado para la plataforma o el dispositivofw_*, current_fw_*, claves que terminen en .state o .reason, y las claves de control internas del dispositivo (cfg_rejected, cfg_applied_ts, cfg_hash, attr_error, rpc_result, cert_not_after, time_quality)
cfg.*Configuración deseada: solo compartida, hasta 128 caracteres. En un dispositivo cuyos ajustes se gestionan en su pestaña Settings, una escritura responde 409 «This device’s configuration (cfg.*) is managed in its Settings; change it there.»
Otras claves compartidascomo máximo 57 caracteres
Tamaño del valorvalores de servidor de hasta 64 KiB de JSON; valores compartidos hasta el límite de downlink del dispositivo; anidamiento de como máximo 8 niveles

Consulte Attributes para saber para qué sirve cada ámbito, y Reserved keys and attributes para la lista completa.

Usos habituales

  • Límites por dispositivo desde un ERP o MES: escriba maxTempThreshold como atributo de servidor; las reglas de alarma pueden compararlo. Consulte Alarm conditions reference.
  • Ajustes deseados para un dispositivo de terceros: escriba una clave compartida que lea el firmware del dispositivo, y observe sus atributos de cliente para ver el resultado.
  • Un informe nocturno: lea las series horarias de ayer y guárdelas en su almacén de datos.