Saltar a contenido

Documentación: Nodo Obtener Estado de Objeto (Get Object State)

Descripción General

El Nodo Obtener Estado de Objeto (Get Object State) es un nodo de acción que obtiene el estado actual de un objeto en la plataforma. Consulta al Driver Hub el estado y las propiedades adicionales del objeto y deja esa información disponible en la Output (salida) del nodo. Los nodos siguientes pueden usar esta salida para tomar decisiones, enviar notificaciones o disparar otras acciones según el estado actual del objeto.

¿Cuándo usar este nodo?

Utiliza este nodo cuando necesites:

  • Leer el estado actual de un objeto (puerta, sensor, interruptor, etc.) dentro del flujo de automatización
  • Usar el estado o las propiedades del objeto en nodos posteriores (condiciones, mensajes, llamadas API)
  • Comprobar el estado después de una espera o de otra acción, antes de continuar
  • Enviar datos del objeto (dominio, estado, propiedades adicionales) a sistemas externos o notificaciones

Configuración del Nodo

El nodo tiene dos vistas de configuración: Form (Formulario) y JSON Editor. En ellas se selecciona el objeto del cual se quiere obtener el estado.

Formulario de configuración del nodo Get object state

Vista Formulario

Objeto

  1. En la sección "Object" (Objeto), haz clic en "Select" (Seleccionar) para abrir el selector de objetos
  2. Elige el objeto del cual quieres obtener el estado
  3. El ID del objeto seleccionado se guarda como objectId en la configuración del nodo

Note

Puedes usar un objeto fijo o referenciar un valor de un nodo anterior (por ejemplo desde el JSON Editor con una expresión de plantilla como {{trigger.object_id}}).

Vista JSON Editor

Cambia a la pestaña JSON Editor para ver o editar la configuración en JSON, o para usar expresiones de plantilla en objectId.

Estructura JSON (Parámetros de entrada)

{
  "objectId": "93b390f5-f0d0-4873-a17d-a62251f541bb"
}

Campos requeridos

Campo Tipo Descripción
objectId string ID del objeto del cual se desea obtener el estado

El objectId puede ser un UUID fijo o una expresión de plantilla que se resuelve en tiempo de ejecución (por ejemplo {{trigger.object_id}}).

Output: Dónde viene la data del nodo

El objetivo principal de este nodo es proporcionar la salida (Output) para el resto del flujo. Cuando el nodo se ejecuta correctamente, la sección Output del nodo (y el contexto de la automatización) contiene los siguientes datos, que puedes usar en nodos posteriores mediante expresiones de plantilla.

Campos de la salida

Campo Tipo Descripción
id string ID del objeto
object_id string ID del objeto (igual que id)
domain string Dominio del objeto
datetime string Fecha y hora de última actualización (RFC3339)
state object Estado y propiedades adicionales
state.state string Valor principal del estado (ej. on, off, open, closed)
state.state_additional_properties object Propiedades adicionales del estado (ej. brightness, temperature)

Ejemplo de salida

{
  "id": "93b390f5-f0d0-4873-a17d-a62251f541bb",
  "object_id": "93b390f5-f0d0-4873-a17d-a62251f541bb",
  "domain": "devices",
  "datetime": "2025-02-04T12:00:00Z",
  "state": {
    "state": "on",
    "state_additional_properties": {
      "brightness": "80",
      "color_temp": "4000"
    }
  }
}

Usar la salida en nodos posteriores

Referencia la salida usando la clave (NodeKey) del nodo en la automatización. Ejemplos:

{{node_key.state.state}}
{{node_key.state.state_additional_properties.brightness}}
{{node_key.domain}}
{{node_key.datetime}}

Sustituye node_key por la clave real asignada al nodo Get Object State en tu flujo.

Ejemplos de uso

Ejemplo 1: Leer estado de puerta antes de enviar notificación

Caso de uso: Obtener el estado actual de una puerta e incluirlo en un mensaje de notificación.

Configuración:

  • Object: Seleccionar el objeto puerta (o configurar objectId en JSON).

JSON:

{
  "objectId": "93b390f5-f0d0-4873-a17d-a62251f541bb"
}

En un nodo posterior (ej. Enviar notificación) usa: Estado de puerta: {{get_object_state_node.state.state}}


Ejemplo 2: Objeto dinámico desde el disparador

Caso de uso: Obtener el estado del objeto que disparó la automatización (ej. disparador de cambio de estado).

JSON:

{
  "objectId": "{{trigger.object_id}}"
}

El nodo resolverá trigger.object_id en tiempo de ejecución y obtendrá el estado de ese objeto. La salida queda disponible para los nodos siguientes.


Ejemplo 3: Usar propiedades adicionales en condición o mensaje

Caso de uso: Leer el estado de un sensor y sus propiedades extra (ej. temperatura) para una rama condicional o un mensaje.

Tras ejecutar el nodo Get Object State, usa en un nodo IF o en el cuerpo del mensaje:

  • Estado principal: {{getstate_node.state.state}}
  • Propiedad: {{getstate_node.state.state_additional_properties.temperature}}

Validación y errores

El nodo comprueba que:

  1. El parámetro objectId esté presente.
  2. El valor de objectId no esté vacío.

Si falla la validación o la petición al Driver Hub, el nodo devuelve un error y el mensaje queda disponible en el resultado (ej. Success: false, campo Error).

Errores comunes

Condición Causa / solución habitual
objectId ausente Asegurarse de tener un objeto seleccionado o objectId en el JSON.
objectId vacío No dejar el campo de objeto vacío; usar un ID válido o expresión.
Driver Hub inaccesible Comprobar que el servicio Driver Hub esté en ejecución y accesible.
HTTP 4xx/5xx El objeto puede no existir o el ID ser incorrecto; verificar el ID.

Buenas prácticas

  • Nombrar el nodo de forma clara (ej. "Obtener estado puerta") para poder referenciar su salida como node_key en las plantillas.
  • Usar expresiones de plantilla cuando el objeto dependa del disparador o de nodos anteriores (ej. {{trigger.object_id}}).
  • Manejar errores en el flujo si el objeto puede no existir o el Driver Hub no estar disponible (ej. rama condicional según éxito/error).