Saltar a contenido

Consultas

Versión del paquete: 0.2.1

Esta guía corresponde a tecsci-cloud-api 0.2.1.

Las siguientes operaciones leen datos. Usá la autenticación configurada y reemplazá los nombres ficticios por entidades autorizadas.

Dispositivos, activos y cliente

Un activo representa una entidad organizada en Tecsci Cloud; su nombre no tiene que coincidir con el del dispositivo que produce mediciones.

import os
from tecsci_cloud_python_api import TecsciCloudClient

with TecsciCloudClient(api_key=os.environ["TECSCI_CLOUD_API_KEY"]) as client:
    dispositivo = client.get_device("sensor-001")
    activo = client.get_asset("Demo", customer_title="Demo")
    cliente = client.get_customer("Demo")
    dispositivos = client.list_customer_devices("Demo", page_size=100)
    activos = client.list_customer_assets("Demo", page_size=100)
    print(dispositivos)
    print(activos)

get_device, get_asset y get_customer devuelven objetos, no necesariamente diccionarios. Los listados devuelven listas de diccionarios y recorren las páginas; page_size controla el tamaño de cada solicitud, no el total.

Respuesta ficticia de list_customer_devices:

[
  {"name": "sensor-001", "type": "Demo", "relation_to_1": "Demo", "relation_to_2": "", "relation_to_3": ""}
]

customer_title ayuda a buscar activos, pero no debe interpretarse como un filtro estricto de pertenencia de get_asset: una coincidencia directa por nombre puede resolverse antes. Los permisos de la API key siguen limitando el acceso.

Telemetría actual

import os
from tecsci_cloud_python_api import TecsciCloudClient

with TecsciCloudClient(api_key=os.environ["TECSCI_CLOUD_API_KEY"]) as client:
    ultima = client.get_latest_device_telemetry("sensor-001", ["temperature", "humidity"])
    varias = client.get_latest_devices_telemetry({"sensor-001": ["temperature"]})
    print(ultima)
    print(varias)

El segundo método transforma valores numéricos y presenta la fecha en UTC. Respuesta ficticia de get_latest_devices_telemetry:

{"sensor-001": {"temperature": {"timestamp": "2026-01-01 00:00:00", "value": 21.5}}}

Una clave sin datos puede devolver null; un dispositivo con error devuelve un diccionario con error. Revisá cada resultado.

Telemetría histórica

Los límites temporales y los campos ts usan Unix epoch en milisegundos, no segundos. Multiplicá por 1000 al convertir desde datetime.timestamp().

import os
from datetime import datetime, timedelta, timezone
from tecsci_cloud_python_api import TecsciCloudClient

fin = datetime.now(timezone.utc)
inicio = fin - timedelta(days=7)
start_ts = int(inicio.timestamp() * 1000)
end_ts = int(fin.timestamp() * 1000)

with TecsciCloudClient(api_key=os.environ["TECSCI_CLOUD_API_KEY"]) as client:
    datos = client.get_device_telemetry(
        "sensor-001", ["temperature", "humidity"], start_ts, end_ts, limit=10000
    )
    activo = client.get_asset("Demo", customer_title="Demo")
    datos_activo = client.get_asset_telemetry(
        activo.id.id, "temperature", start_ts, end_ts, order_by="ASC"
    )
    print(datos)
    print(datos_activo)

Respuesta ficticia del activo:

[{"ts": 1767225600000, "value": "21.5"}]

limit limita los puntos de la consulta; estos métodos no descargan automáticamente todo el historial. Para exportaciones paginadas usá Exportaciones CSV.

Vacío no siempre significa ausencia de datos

get_device_telemetry puede devolver {} ante errores de consulta; get_asset_telemetry y get_asset_telemetry_keys pueden devolver []. La búsqueda inicial del dispositivo sí puede lanzar una excepción. Verificá permisos, nombres, claves y fechas antes de concluir que no existen mediciones.