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.

Vista Formulario¶
Objeto¶
- En la sección "Object" (Objeto), haz clic en "Select" (Seleccionar) para abrir el selector de objetos
- Elige el objeto del cual quieres obtener el estado
- El ID del objeto seleccionado se guarda como
objectIden 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
objectIden 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:
- El parámetro
objectIdesté presente. - El valor de
objectIdno 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_keyen 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).