Le bloc Then énumère ce que fait une règle, « In this order ». Une règle comporte de 1 à 20 actions, en comptant les actions à l’intérieur des choix. Cliquez sur Add an action, choisissez le type, puis utilisez Move up / Move down pour les ordonner.
| Type | Fait |
|---|---|
| Send a command | Envoie une commande du catalogue du profil d’appareil. |
| Change a setting | Écrit un paramètre sur l’appareil. |
| Tell people | Envoie une notification. |
| Raise or clear an alarm | Ouvre ou efface une alarme avec le cycle de vie habituel. |
| Wait | Marque une pause avant l’étape suivante. |
| Wait until something holds | Marque une pause jusqu’à ce qu’une condition soit remplie, avec une limite de temps. |
| Choose by a condition | Exécute différentes étapes selon des conditions. |
| Switch or start another rule | Active ou désactive une autre règle du site, ou la démarre. |
Send a command
Choisissez le Device (un appareil ou tous les appareils d’un profil) et une Command du catalogue du profil, puis ses paramètres. L’enregistrement vérifie que la commande existe pour chaque appareil visé et que ses valeurs conviennent (« This device type has no such command. », « The command’s values do not fit it. »). L’enregistrement est refusé si vous n’êtes pas autorisé à envoyer cette commande vous-même (les commandes ont des niveaux avec leurs propres permissions).
La commande part comme toute autre commande, avec son délai d’attente et son historique dans les commandes de l’appareil. Un appareil en Manual est ignoré : « skipped: device is in Manual ». Voir Sending commands to devices.
Change a setting
Choisissez le Device, saisissez le Setting (une clé, jusqu’à 128 caractères) et la valeur après to. Une valeur qui ressemble à un nombre est envoyée comme nombre, toute autre comme texte.
Le paramètre est écrit comme attribut partagé de chaque appareil, de sorte que l’appareil le reçoit comme tout attribut partagé auquel il est abonné. Un appareil en Manual est ignoré. Voir Attributes.
Tell people
| Champ | Signification |
|---|---|
| Who | Cochez Owners, Admins et/ou Members (les rôles de votre organisation). |
| Message | Le texte, jusqu’à 1 000 caractères. |
Le titre de la notification est le nom de la règle. Elle parvient à chaque personne par les canaux qu’elle autorise. La carte propose des rôles ; l’API des règles accepte aussi des utilisateurs individuels et des équipes, jusqu’à 20 destinataires. Un rôle comptant plus de 20 membres actifs est refusé plutôt que d’informer à moitié. Les répétitions d’une même notification à une même personne sont retenues pendant un délai de 10 minutes, sauf si votre forfait en définit un autre. Détails : Notifications from rules and flows.
Raise or clear an alarm
| Champ | Signification |
|---|---|
| Raise / Clear | Ouvre ou met à jour une alarme, ou l’efface. |
| Device | Un appareil, tous les appareils d’un profil, ou (sur une carte d’appareil) on this place. |
| Alarm type | Le type, par exemple pump_dry_run. |
| Severity | Pour Raise : Critical, Major, Minor, Warning ou Info (par défaut Warning). |
Ces alarmes se comportent comme les alarmes de règle : une alarme active par appareil et par type, mêmes notifications, même limitation et même garde contre les rafales. Une alarme ouverte reste active jusqu’à une action Clear, un flux ou une personne qui l’efface ; elle n’a pas de condition propre.
Wait
Wait for un nombre de seconds ou de minutes, de 1 seconde à 24 heures. Après l’attente, la règle vérifie que le site est toujours en Auto (« Still in Auto? ») ; si le site est passé en Manual entre-temps, l’exécution s’arrête à cet endroit.
Wait until something holds
Une condition (de n’importe quel type issu de Conditions), for at most une durée (1 seconde à 24 heures, par défaut 10 minutes), et ce qu’il faut faire à l’expiration : then go on ou then stop.
La condition est revérifiée toutes les 5 secondes sur les valeurs enregistrées. Dès qu’elle est remplie, l’exécution reprend immédiatement. Contrairement à « stays so for », une exécution en attente ne survit pas à un redémarrage de la plateforme.
Choose by a condition
Jusqu’à 5 branches, chacune If une condition then certaines actions, et un Otherwise facultatif. La première branche dont la condition est remplie s’exécute ; si aucune ne l’est, Otherwise s’exécute. Les choix peuvent contenir des choix, sur 2 niveaux. Les actions à l’intérieur comptent dans les 20.
Switch or start another rule
Choisissez une Rule du même site, puis :
| Choix | Fait |
|---|---|
| Switch on / Switch off | Active ou désactive cette règle, comme le ferait son interrupteur. |
| Start it (must be the last step) | Transmet l’exécution à cette règle. Elle doit être la dernière étape de la règle, ou des branches de son dernier choix : « Starting another rule hands the run over to it, so it has to be the last step. » |
Une règle ne peut pas s’activer, se désactiver ou se démarrer elle-même. Les options Manual et de chevauchement propres à la règle démarrée s’appliquent.
Plusieurs appareils
Une action sur Every profile s’exécute une fois pour chaque appareil de ce profil dans le site, jusqu’à 200 appareils ; les appareils au-delà ne sont pas concernés, et le journal d’exécution le signale. Les appareils en Manual sont exclus des commandes et des paramètres.
Options
| Option | Choix |
|---|---|
| If it fires while it is still running | Ignore the new one (par défaut), Wait for the one running, then run, Run them side by side, Start over: stop the one running at its next wait |
| At most | Pour « wait » et « side by side » : de 1 à 10 exécutions en attente ou simultanées. |
| Also runs in Manual | « Only for a rule that just tells people or raises alarms. » |
Remarques :
- Wait for the one running conserve les exécutions en attente en mémoire ; un redémarrage de la plateforme les supprime.
- Start over ne peut pas annuler une étape en cours : les exécutions plus anciennes s’arrêtent à leur prochaine attente, avec « stopped: a newer run of this rule started ». Ce qu’elles ont déjà envoyé reste envoyé.
- Also runs in Manual est refusé pour une règle qui envoie des commandes, modifie des paramètres ou active des règles : « Only a rule that just notifies or raises alarms may run in Manual ».
Échecs
Si une commande, un paramètre ou une alarme échoue pour un appareil (commande refusée, limite d’appareils atteinte), l’exécution enregistre l’étape en échec de cet appareil dans History et continue : les autres appareils sont toujours traités et les actions suivantes s’exécutent. Un échec de toute autre étape (une notification, une condition illisible) arrête l’exécution à cet endroit, et History indique l’étape qui n’a pas abouti.
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" }

