El bloque Then enumera lo que hace una regla, «In this order». Una regla tiene de 1 a 20 acciones, contando las acciones dentro de las opciones. Haz clic en Add an action, elige el tipo y usa Move up / Move down para ordenarlas.
| Tipo | Hace |
|---|---|
| Send a command | Envía un comando del catálogo del perfil de dispositivo. |
| Change a setting | Escribe un ajuste en el dispositivo. |
| Tell people | Envía una notificación. |
| Raise or clear an alarm | Abre o borra una alarma con el ciclo de vida habitual. |
| Wait | Pausa antes del siguiente paso. |
| Wait until something holds | Pausa hasta que se cumpla una condición, con un límite de tiempo. |
| Choose by a condition | Ejecuta distintos pasos según las condiciones. |
| Switch or start another rule | Activa o desactiva otra regla del lugar, o la inicia. |
Send a command
Elige el Device (un dispositivo o todos los dispositivos de un perfil) y un Command del catálogo del perfil, y después sus parámetros. Al guardar se comprueba que el comando existe en cada dispositivo al que llega y que sus valores encajan («This device type has no such command.», «The command’s values do not fit it.»). El guardado se rechaza si no puedes enviar ese comando tú mismo (los comandos tienen niveles con sus propios permisos).
El comando se envía como cualquier otro, con su tiempo de espera y su historial en los comandos del dispositivo. Un dispositivo en Manual se omite: «skipped: device is in Manual». Consulta Sending commands to devices.
Change a setting
Elige el Device, escribe el Setting (una clave, de hasta 128 caracteres) y el valor tras to. Un valor que parece un número se envía como número; cualquier otro, como texto.
El ajuste se escribe como shared attribute de cada dispositivo, de modo que el dispositivo lo recibe como cualquier atributo compartido al que esté suscrito. Un dispositivo en Manual se omite. Consulta Attributes.
Tell people
| Campo | Significado |
|---|---|
| Who | Marca Owners, Admins y/o Members (los roles de tu organización). |
| Message | El texto, de hasta 1,000 caracteres. |
El título de la notificación es el nombre de la regla. Llega a cada persona por los canales que permita. La tarjeta ofrece roles; la API de reglas también acepta usuarios individuales y equipos, de hasta 20 destinatarios. Un rol con más de 20 miembros activos se rechaza en lugar de avisar a medias. Los repetidos del mismo aviso a la misma persona se retienen durante un enfriamiento de 10 minutos, salvo que tu plan establezca otro. Detalles: Notifications from rules and flows.
Raise or clear an alarm
| Campo | Significado |
|---|---|
| Raise / Clear | Abre o actualiza una alarma, o la borra. |
| Device | Un dispositivo, todos los dispositivos de un perfil o (en la tarjeta de un dispositivo) on this place. |
| Alarm type | El tipo, por ejemplo pump_dry_run. |
| Severity | Para Raise: Critical, Major, Minor, Warning o Info (por defecto Warning). |
Estas alarmas se comportan como las alarmas de reglas: una alarma activa por dispositivo y tipo, las mismas notificaciones, limitación y guardia contra tormentas. Una alarma abierta permanece abierta hasta una acción Clear, un flujo o una persona que la borre; no tiene condición propia.
Wait
Wait for un número de seconds o minutes, de 1 segundo a 24 horas. Tras la espera, la regla comprueba que el lugar sigue en Auto («Still in Auto?»); si el lugar pasó a Manual mientras tanto, la ejecución se detiene ahí.
Wait until something holds
Una condición (de cualquier tipo de Conditions), for at most un tiempo (de 1 segundo a 24 horas, por defecto 10 minutos) y qué hacer al agotarse el tiempo: then go on o then stop.
La condición se vuelve a comprobar cada 5 segundos frente a los valores almacenados. Cuando se cumple, la ejecución continúa de inmediato. A diferencia de «stays so for», una ejecución en espera no sobrevive a un reinicio de la plataforma.
Choose by a condition
Hasta 5 ramas, cada una con un If una condición then algunas acciones, y un Otherwise opcional. Se ejecuta la primera rama cuya condición se cumpla; si ninguna se cumple, se ejecuta Otherwise. Las opciones pueden contener opciones, 2 niveles de profundidad. Las acciones dentro cuentan para el 20.
Switch or start another rule
Elige una Rule del mismo lugar y:
| Opción | Hace |
|---|---|
| Switch on / Switch off | Activa o desactiva esa regla, como lo haría su interruptor. |
| Start it (must be the last step) | Cede la ejecución a esa regla. Debe ser el último paso de la regla, o de las ramas de su última opción: «Starting another rule hands the run over to it, so it has to be the last step.» |
Una regla no puede activarse, desactivarse ni iniciarse a sí misma. Se aplican las opciones Manual y de solapamiento de la regla iniciada.
Varios dispositivos
Una acción sobre Every profile se ejecuta una vez por cada dispositivo de ese perfil en el lugar, hasta 200 dispositivos; los dispositivos por encima de ese número no reciben la acción, y el registro de ejecución lo indica. Los dispositivos en Manual se excluyen de comandos y ajustes.
Opciones
| Opción | Opciones |
|---|---|
| If it fires while it is still running | Ignore the new one (por defecto), Wait for the one running, then run, Run them side by side, Start over: stop the one running at its next wait |
| At most | Para «wait» y «side by side»: de 1 a 10 ejecuciones en espera o al mismo tiempo. |
| Also runs in Manual | «Only for a rule that just tells people or raises alarms.» |
Notas:
- Wait for the one running mantiene las ejecuciones en espera en memoria; un reinicio de la plataforma las elimina.
- Start over no puede cancelar un paso en curso: las ejecuciones más antiguas se detienen en su siguiente espera, con «stopped: a newer run of this rule started». Lo que ya enviaron permanece enviado.
- Also runs in Manual se rechaza para una regla que envía comandos, cambia ajustes o activa reglas: «Only a rule that just notifies or raises alarms may run in Manual».
Fallos
Si un comando, ajuste o alarma falla para un dispositivo (un comando rechazado, un límite de dispositivo alcanzado), la ejecución registra el paso fallido de ese dispositivo en History y continúa: los demás dispositivos siguen recibiendo la acción y las siguientes acciones se ejecutan. Un fallo de cualquier otro paso (una notificación, una condición que no se puede leer) termina la ejecución ahí, y History indica el paso que no se completó.
En JSON
"then": [
{ "id": "a1", "kind": "command", "target": { "deviceType": "<profileId>" }, "command": "fan.set", "params": { "on": true } },
{ "id": "a2", "kind": "setting", "target": { "device": "<id>" }, "key": "setpoint", "value": 21 },
{ "id": "a3", "kind": "notify", "recipients": [ { "kind": "role", "role": "ADMIN" } ], "text": "Fans switched on" },
{ "id": "a4", "kind": "alarm", "op": "raise", "target": { "device": "<id>" }, "alarmType": "fan_forced", "severity": "warning" },
{ "id": "a5", "kind": "wait", "sec": 600 },
{ "id": "a6", "kind": "wait_until", "condition": { "kind": "value", "target": { "device": "<id>" }, "key": "door_open", "op": "==", "value": false }, "timeoutSec": 900, "onTimeout": "stop" },
{ "id": "a7", "kind": "choose", "branches": [ { "if": { "kind": "sun", "is": "night" }, "then": [ { "id": "a8", "kind": "rule", "op": "enable", "rule": "<ruleId>" } ] } ] }
],
"options": { "overlap": "ignore" }

