Saltar a contenido

Documentación: Nodo Obtener Objeto (Get Object)

Descripción General

El Nodo Obtener Objeto (Get Object) es un nodo de acción de consulta (read-only) que recupera de la plataforma una lista de objetos que cumplen con los criterios definidos. Permite buscar objetos por su ID, por condiciones sobre las propiedades de su estado (state properties), y paginar los resultados con límite y desplazamiento.

A diferencia del nodo Obtener estado de objeto, que lee el estado de un objeto puntual, este nodo realiza una búsqueda/filtrado sobre el conjunto de objetos de la plataforma y devuelve todos los que coinciden. Es ideal para lógica IoT que necesita actuar sobre conjuntos dinámicos de dispositivos (por ejemplo, "todos los sensores cuya temperatura supera un umbral").


¿Cuándo usar este nodo?

Utiliza este nodo cuando necesites:

  • Encontrar dinámicamente qué objetos cumplen una condición (por ejemplo, todos los sensores con temperature mayor a 8 °C).
  • Obtener una lista de objetos para luego iterarlos con el nodo Iterar elementos (Iterate items) y realizar una acción sobre cada uno.
  • Construir tableros o reportes dinámicos consultando objetos por estado o propiedades.
  • Verificar cuántos dispositivos se encuentran en un estado determinado antes de tomar una decisión en el flujo.

Configuración del Nodo

El nodo cuenta con dos pestañas de configuración en la parte superior: Formulario (Form) y Editor de JSON (JSON Editor).

Configuración vacía del nodo Obtener objeto

Vista Formulario

1. Objetos (Objects) *Opcional

Permite restringir la búsqueda a un conjunto específico de objetos. Haz clic en el campo para abrir el modal Select Objects y marca los objetos deseados. Si lo dejas vacío, la búsqueda se realiza sobre todos los objetos (acotada por las condiciones y el límite).

2. Condiciones de Propiedades de Estado (State Property Conditions) *Opcional

Permite filtrar los objetos según los valores de las propiedades de su estado. Haz clic en Add Condition para agregar una condición, compuesta por tres campos:

  • Property (Propiedad): El nombre de la propiedad de estado a evaluar (por ejemplo, temperature, battery_level, state).
  • Operator (Operador): La comparación a aplicar. Operadores disponibles:
Operador (UI) Valor Significado
Equal EQUAL Igual a
Not Equal NOT_EQUAL Distinto de
Greater Than GREATER_THAN Mayor que
Less Than LESS_THAN Menor que
Greater Than Or Equal GREATER_THAN_OR_EQUAL Mayor o igual que
Less Than Or Equal LESS_THAN_OR_EQUAL Menor o igual que
In IN Contenido en una lista
Not In NOT_IN No contenido en una lista
Like LIKE Coincidencia parcial de texto
Not Like NOT_LIKE No coincide parcialmente
Exists EXISTS La propiedad existe
Not Exists NOT_EXISTS La propiedad no existe
  • Value (Valor): El valor de comparación. (Este campo se oculta cuando el operador es Exists o Not Exists, ya que no requiere valor.)

Puedes agregar varias condiciones; se combinan para acotar el resultado. Usa Remove Condition para eliminar una.

3. Límite (Limit) y Desplazamiento (Offset) *Opcional

  • Limit: Número máximo de objetos a devolver (paginación).
  • Offset: Número de resultados a omitir desde el inicio (paginación).

Formulario configurado del nodo Obtener objeto


Vista Editor de JSON

En la pestaña Editor de JSON (JSON Editor) puedes visualizar y editar directamente toda la consulta:

Vista JSON Editor del nodo Obtener objeto


Estructura JSON (Parámetros de entrada)

A continuación se muestra la estructura del JSON que se genera al configurar el nodo:

{
  "state_property_conditions": [
    {
      "id": "1e988ab6618",
      "property": "temperature",
      "operator": "GREATER_THAN",
      "value": "8"
    }
  ],
  "limit": 50
}

Campos del JSON

Campo Tipo Descripción
object_ids array (string) (Opcional) Lista de ID de objetos a los que restringir la búsqueda.
state_property_conditions array (object) (Opcional) Lista de condiciones de filtrado sobre propiedades de estado.
state_property_conditions[].property string Nombre de la propiedad de estado a evaluar.
state_property_conditions[].operator string Operador de comparación (ver tabla de operadores).
state_property_conditions[].value string Valor de comparación (no aplica para EXISTS / NOT_EXISTS).
limit number (Opcional) Máximo de resultados a devolver.
offset number (Opcional) Número de resultados a omitir (paginación).

Output: Dónde viene la data del nodo

Cuando la consulta se ejecuta correctamente, el nodo devuelve en su Output (Salida) una lista (array) de objetos que cumplen con los criterios, cada uno con su identificador, estado y propiedades de estado.

Ejemplo de salida (representativo)

[
  {
    "object_id": "ajax_enterprise_api.sensor.device.30AA3100",
    "name": "Termostato Bobeda",
    "domain": "ajax_enterprise_api.sensor.device",
    "state": "ACTIVE",
    "state_additional_properties": {
      "temperature": 12,
      "battery_level": 87
    }
  }
]

Usar la salida en nodos posteriores

La salida de este nodo se utiliza frecuentemente como entrada del nodo Iterar elementos (Iterate items) para procesar uno por uno cada objeto encontrado. También puedes referenciar elementos individuales con la clave del nodo:

{{node_key[0].object_id}}
{{node_key[0].state_additional_properties.temperature}}

(Recuerda sustituir node_key por la clave asignada automáticamente al nodo en el lienzo.)


Ejemplos de uso

Ejemplo 1: Encontrar sensores de temperatura sobre el umbral

Caso de uso: Obtener todos los sensores cuya propiedad temperature supere los 8 °C para luego notificar o actuar sobre ellos.

  • State Property Conditions: temperature Greater Than 8
  • Limit: 50

JSON de configuración:

{
  "state_property_conditions": [
    {
      "property": "temperature",
      "operator": "GREATER_THAN",
      "value": "8"
    }
  ],
  "limit": 50
}


Ejemplo 2: Listar dispositivos con batería baja

Caso de uso: Obtener los sensores cuyo nivel de batería sea menor o igual a 20 % para programar mantenimiento.

  • State Property Conditions: battery_level Less Than Or Equal 20

JSON de configuración:

{
  "state_property_conditions": [
    {
      "property": "battery_level",
      "operator": "LESS_THAN_OR_EQUAL",
      "value": "20"
    }
  ]
}


Validación y errores

Condición Causa / Solución habitual
El resultado está vacío ([]) Ningún objeto cumple las condiciones. Revisa el nombre de la propiedad, el operador y el valor.
La propiedad no filtra como se espera Verifica que el nombre de la propiedad (property) coincida exactamente con la clave usada en las propiedades de estado del objeto.
Demasiados resultados Usa limit y offset para paginar y acotar la cantidad de objetos devueltos.

Buenas prácticas

  • Nombrar el nodo descriptivamente: Cambia el nombre del nodo en el lienzo (ej. "Buscar sensores calientes") para identificarlo y referenciar su salida con claridad.
  • Combinar con Iterar elementos: El patrón más común es Obtener objetoIterar elementos para ejecutar una acción por cada objeto encontrado.
  • Usar el límite: Define siempre un limit razonable en consultas amplias para evitar procesar conjuntos demasiado grandes.
  • Validar nombres de propiedad: Asegúrate de conocer las propiedades de estado reales de tus objetos (puedes verlas en SettingsObjects) antes de crear condiciones.