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:
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:
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.