IHM V5 en détails : Le moteur de scenario

De GCE Electronics
Aller à la navigation Aller à la recherche

Niveau de mise à jour : Firmware 5.5.6 (09/11/2023)

Avant-propos

Rule Engine

Rule-engine-Dall-E.jpg
Nom Rule Engine
Famille IPX800 V5
Wiki créé le 27/11/2023
Wiki mis à jour le 12/12/2023
Auteur @fgtoul

Le moteur de scénario de l’IPX800 V5 est un outil puissant qui offre une grande flexibilité pour automatiser votre appareil et ses extensions. Voici quelques points à connaître avant de commencer la lecture de cet article.

  1. Ressources de la V5 : Le moteur de scénario utilise les ressources disponibles sur votre IPX800 V5. Ces ressources comprennent les objets, les variables et les entrées/sorties de votre appareil et de ses extensions.
  2. Caractéristiques et rôles des ressources : Pour utiliser efficacement le moteur de scénario, il est essentiel de comprendre les caractéristiques et les rôles de ces ressources. Chaque ressource a une fonction spécifique et contribue à la personnalisation de vos automatismes.
  3. Commandes et retours d’état : Une autre distinction importante à comprendre est celle entre les commandes et les retours d’état. Les commandes sont des instructions que vous donnez à votre appareil, tandis que les retours d’état sont des informations que votre appareil vous donne en retour.
  4. Documentation de la V5 : Pour une compréhension plus approfondie de chaque ressource et de son fonctionnement, vous pouvez consulter l'article en lien ci-dessous. Il contient des descriptions détaillées de chaque ressource et peut être un bon support pour vous aider à créer des automatismes personnalisés. IHM V5 en détails : Les ressources et les liens

En résumé, le moteur de scénario de l’IPX800 V5 est un outil puissant qui, lorsqu’il est utilisé correctement, peut vous permettre de créer des automatismes personnalisés pour votre appareil et ses extensions. Il est important de comprendre les différentes ressources disponibles et comment elles fonctionnent pour tirer le meilleur parti de cet outil.


Rappel : il est essentiel de choisir des noms de variables significatifs lorsque vous renommez les ressources de la V5. Cela vous aidera à écrire plus rapidement vos règles et à les déboguer plus facilement.

Présentation

L’automate IPX800 V5 est équipé d’un moteur de scénario performant et intuitif, qui vous permet de programmer facilement des actions en fonction d’événements déclencheurs.

Vous pouvez scénariser tous les objets, variables et ressources, que ce soit comme déclencheur, variable de sortie ou actionneur. Vous pouvez également glisser-déposer des tuiles préconfigurées dans des conteneurs appelés Événement et Résultat pour créer vos propres règles.


Nous allons vous expliquer la logique du Rule Engine, qui peut paraître complexe à certains utilisateurs, et vous présenter les différents outils à votre disposition.

Nous approfondirons également certains sujets liés à l’IPX800 V5, qui ont été traités dans d’autres articles ou documents.

Terminologie

information booléenne (IO)

C'est une variable prenant les états VRAI ou FAUX. Dans le langage courant, il est habituel d'utiliser également les valeurs ON, OFF ou 1 et 0.

Ces valeurs peuvent indiquer l'état des commandes, des actionneurs TOR (Tout Ou Rien), des retours d'état ou même des variables créées par le système, nous parlerons d'IO systèmes.

L'utilisateur peut également créer des variables booléennes que nous appellerons IO virtuelles..

information numérique (Analogique)

Les valeurs analogiques sont des nombres entiers ou réels (avec ou sans décimales), positifs ou négatifs, qui ont une taille maximale de 32 bits.

Elles peuvent correspondre à des ressources comme les entrées ou sorties analogiques, ou à des variables créées par le système. On les appelle les variables analogiques.

L’utilisateur peut aussi créer des variables de type numérique pour ses besoins en programmation. On les appelle les variables analogiques virtuelles.

Événement

Un événement est défini par une variation d’état pour une IO ou une variation de valeur pour une ressource analogique.

Exemples :

📝 Quand un capteur s’ouvre ou se ferme, il entraîne un changement d’état synchronisé de l’entrée digitale à laquelle il est relié. Ces changements d’état (de ON à OFF ou de OFF à ON) sont des événements que l’IPX800 V5 détecte et qui peuvent servir de déclencheurs pour des actions programmées.

📝Un capteur de température change de valeur. L’entrée analogique à laquelle il est branché change aussi de valeur en même temps. L’IPX800 perçoit cette variation et peut l’utiliser comme déclencheur dans le moteur de scénario pour réaliser des actions prévues.

📝L’utilisateur crée une variable de type IO virtuelle. Cette variable change d’état par différents moyens (par lien, API, manuellement ou par scénario). Ce changement d’état peut servir de déclencheur dans le moteur de scénario.

📝L’utilisateur crée une variable analogique virtuelle qui contient une valeur numérique. Il peut modifier cette valeur avec un widget sur le dashboard ou avec l’API. Ces modifications de valeur sont des événements qui peuvent être utilisés comme déclencheurs dans le moteur de scénario.

📝En appuyant sur un bouton poussoir connecté à une entrée de l’extension X-8R, on ferme le relais associé. Ce relais change d’état, ce qui est un événement qui peut servir de déclencheur pour des actions programmées.

Règle

Une règle est une relation de cause à effet qui détermine les actions à effectuer sur les périphériques en fonction des événements prédéfinis.

Une règle se compose d’une clause Événement qui rassemble toutes les conditions nécessaires à l’action, et d’une clause Résultat qui rassemble les actions à réaliser.

exemples :

📝cas 1

  • Événement  : si l'interrupteur change d'état et si la luminosité est insuffisante,
  • Résultat : allumer le plafonnier

📝Cas 2:

  • Événement : si la température intérieure est inférieure à 18°C
  • Résultat : allumer le radiateur, sinon il faut l'éteindre

📝Cas 3:

  • Événement : si le soleil est couché,
  • Résultat : fermer les volets roulants et autoriser l'allumage de projecteurs extérieurs, sinon ouvrir les volets et inhiber l'allumage des projecteurs.
Une règle peut être activée ou désactivée. Si désactivée, elle est ignorée par le moteur de scénario.

Scène

Une scène est un ensemble de règles qui ont la même fonctionnalité.

Par exemple : l’éclairage, le chauffage, l’ECS, l’armement de l’alarme, etc.

Vous pouvez organiser les règles selon vos besoins, par fonction (éclairage, chauffage, …), par lieu (salon, cuisine, …), etc.

Avec une scène, vous pouvez aussi créer un groupe de règles qui peut être activé ou désactivé selon certaines conditions.

Quand une scène est désactivée, le moteur de scénario ne tient pas compte des règles qu’elle contient. Voici quelques exemples :

- En été, arrêter toutes les commandes liées au chauffage : -> si la date est entre le 15 avril et le 15 octobre, désactiver la scène “Chauffage”.
- En hiver, si la piscine est en mode hivernage passif, désactiver les scènes Traitement, Filtration et Chauffage."

Il est possible de créer 64 scènes au total, chacune d'elle pouvant regrouper 32 règles.

Gestion des scènes

Pour accéder au moteur de scénario, cliquez sur le bouton Btn rule engine v5.jpg du menu latéral gauche.

Gestion des scènes v5.jpg

Le point d'entrée du Rule Engine est la page de gestion des scènes.

Si votre système ne comporte aucune scène, cliquez sur le bouton Ajouter scène dans le menu supérieur.

Ajout scène v5.jpg

Nommez la scène, puis validez pour créer une scène vide.

Pour importer une scène à partir d'un fichier, sélectionnez le fichier JSON issu d'un échange avec un membre de la communauté ou d'une sauvegarde.

La scène créée apparaît sous forme de tuile-bouton. Elle comporte un bouton à glissière permettant de l'activer ou désactiver manuellement (voir plus haut).

Le menu Édition permet de renommer la scène, lui attribuer une icône, de la supprimer ainsi que toutes les règles qu'elle contient, ou encore vérifier son taux d'occupation par les règles.

Édition scène v5.jpg


Cliquez sur la tuile de la scène pour éditer les règles qu'elle contient.

Gestion des Règles

Éditeur de règles v5.png

le menu supérieur

Menu éditeur règles v5.png

Le menu supérieur permet des actions sur la scène en cours d'édition

  • Retour : permet de revenir au gestionnaire de scènes
  • Activé : bouton à glissière permettant d'activer ou désactiver la scène et toutes les règles
  • Rafraîchir : réactualisation de l'affichage
  • Ajouter : créer une nouvelle règle en dernière position
  • Exporter : permet la sauvegarde de la scène et de l'ensemble de ses règles sous le format JSON. Ce fichier pourra être échangé avec d'autres utilisateurs.
  • Sauvegarder : sauvegarde de toutes les règles avec application des dernières modifications.

La bibliothèque de périphériques

Image bibliothèque v5.png

La bibliothèque contient les tuiles qui pourront constituer une règle. Chaque tuile est spécifique à un type de périphérique.

Les ressources sont triées par onglets :

  • IPX800 : cette catégorie recense toutes les entrées/sorties présentes sur l'ipx800 elle-même, ainsi que les variables systèmes (heure de l'ipx, informations de diagnostique, ...) ou fonction de redémarrage.
  • Extensions : cette catégorie contient tous les objets représentant les extensions. Pour utiliser l'une de ces tuiles, vous devrez avoir au préalable installé l'extension correspondante.
  • Objets : tous les objets de la V5, comme les fonctions, les calendriers, les objets temps (tempo, pulse,...) sont regroupés dans cette catégorie.
  • Variables : catégorie regroupant les variables de tous types (IO, ANA, STR, ...)
  • Modules : catégorie des plugins
  • Scénario : éléments du moteur de scénario

Nous analyserons ces tuiles plus bas dans cet article.

La bibliothèque d'opérateurs

Library operateurs.png

Les tuiles opérateurs ET OU permettent de combiner 2 événements entre eux. Elles pourront être utilisées dans la clause 'Événement' uniquement.

Important : Pour conditionner une action sur 2 événements ou plus, il faut obligatoirement les séparer par un opérateur ET ou OU


Opérateur ET

Voici la table de vérité de la fonction ET, avec Vrai=1 et Faux=0 :

État événement

E1

État événement

E2

État de

E1 ET E2

0 0 0
0 1 0
1 0 0
1 1 1


Opérateur OU

Voici la table de vérité de l'opérateur OU, avec Vrai=1 et Faux=0 :

État événement

E1

État événement

E2

État de

E1 OU E2

0 0 0
0 1 1
1 0 1
1 1 1


Fonction NON

La fonction logique NON permet d'utiliser l'état inverse d'un événement.

Cette fonction est utile pour exécuter une action quand un capteur NF (Normalement Fermé) change d’état, mais elle peut aussi s’appliquer à toute ressource de type IO physique ou virtuelle.

Voici la table de vérité de la fonction NON, avec Vrai=1 et Faux=0 :

E1 NON E1
0 1
1 0


Opérateurs analogiques

Les tuiles d’opérateurs suivantes servent à comparer des valeurs analogiques.

Elles peuvent être employées pour construire l’expression Événement.

< <= == >= > !=
strictement inférieur inférieur ou égal égal supérieur ou égal strictement supérieur différent

La bibliothèque d'actions

Library action.png

Les tuiles Action seront utilisables dans la clause Résultat uniquement.

Elles renseignent l'action à appliquer sur les ressources digitales ou analogiques énumérées dans la clause.

ON, OFF, ON/OFF et SWITCH s'appliquent à des ressources booléennes.

  • ON : Si l'évaluation de l'expression logique Événement change à l'état VRAI, l'état des ressources énumérées derrière est forcé à ON. Rien ne se passe lorsque l'état Événement passe à OFF.
  • OFF : Si l'évaluation de l'expression logique Événement change à l'état VRAI, l'état des ressources énumérées derrière est forcé à OFF. Rien ne se passe lorsque l'état Événement passe à OFF.
  • ON/OFF : Si l'évaluation de l'expression logique Événement change à l'état VRAI, la commande ON est exécutée, de même, si l'évaluation de l'expression logique Événement change à l'état FAUX, la commande OFF est exécutée.
  • SWITCH : Si l'évaluation de l'expression logique Événement change à l'état VRAI, l'état des ressources énumérées derrière est permuté quelque soit leur valeur initiale. Rien ne se passe lorsque l'état Événement passe à OFF.

SET VAL s'applique à des ressources analogiques. Cette commande permet de forcer une valeur analogique dans une variable lorsque l'évaluation de l'expression Événement est VRAIE.

Constructeur de règle

Image règle v5.png

  1. Vous pouvez renommer, activer ou désactiver la règle
  2. vous y déposez des tuiles Opérateurs, Périphériques pour assembler la clause événementielle.
  3. vous y glissez les tuiles Action et Périphériques pour déterminer les actions
  4. La suppression, le déplacement vers une autre scène et le glissement vertical (changement de l'ordre d'exécution) sont possibles.

Le fonctionnement d'une règle

Illustration rule engine.png

A chaque cycle du moteur de scénario, l'interpréteur d'événements évalue la clause "Événement" et place le résultat dans la variable booléenne de sortie nommée Résultat.

L'interpréteur de résultat évalue la clause "Résultat" et décompose la chaîne d'actions en blocs d'instructions.

Si la variable de sortie Résultat est vraie et si la règle est activée (Enable=Vrai), alors le générateur d'actions applique les blocs d'instructions.

Clause "Événement"

Principes

➡️ La clause "Événement" doit contenir au moins 1 tuile périphérique. Si la clause contient plusieurs événements, ceux-ci devront être séparés par des opérateurs ET, OU.

➡️L'interpréteur d'événements évalue la clause "Événement" qui conditionne l'exécution des actions sur périphériques peuplant l'a clause "Résultat".

➡️ Les actions ON, OFF, SWITCH, SET VAL sont exécutées uniquement lorsque l'expression "Événement" passe à l'état VRAI, il faudra alors que l'évaluation de la clause "Événement" repasse successivement à FAUX puis VRAI pour que les actions soient à nouveau exécutées.

➡️ L'action ON/OFF tenant compte de tout changement d'état sera exécutée une seule fois à chaque changement VRAI ou FAUX de l'expression "Événement".

Important : la clause "Événement" ne peut pas contenir un mélange de tuiles représentant des ressources analogiques et d'autres représentant des IO (ressources ou opérateurs booléens).
Si vous mixez les genres par inadvertance, le moteur de scénario vous signalera l'erreur avec le flag Flag erreur rule engine.png à gauche du constructeur de la règle.

Exemple d'expression interdite: 

Expression interdite événement.png  Événement interdit mix ana et io.png
Nous verrons plus bas comment contourner cette contrainte.
Évaluation d'une clause "Événement"

L'interpréteur d'événements évalue l'expression de gauche à droite, condition après condition, sans priorisation vu que le moteur de scénario ne permet pas l'usage de parenthèses.

Nous verrons plus bas comment contourner facilement cette contrainte.


Soient 4 événements E1, E2, E3, E4. Considérons l’expression logique qui combine ces 4 événements :

E1 ET E2 OU E3 ET NON E4

L’IPX800 évalue cette expression en 4 étapes :

Logique rule engine.png

  • Étape 1 : E1 ET E2 -> A
  • Étape 2 : R1 OU E3 -> B
  • Étape 3 : NON E4 -> C
  • Étape 4 : R2 ET R3 -> Résultat final"

NB : L'évaluation de R est faite à chaque changement d'état des événements E1, E2, E3 ou E4.

Clause "Résultat"

Principes

➡️ La clause "Résultat" doit contenir au moins une tuile Action. Celle-ci sera obligatoirement en première position.

➡️ La clause "Résultat" est peuplée d'une succession de tuiles Actions et Périphériques.

Évaluation d'une clause Résultat

L'interpréteur de résultat évalue l'expression, de gauche à droite, bloc après bloc.

Un bloc d'instruction commence obligatoirement par une tuile action. Cette action sera appliquée à tous les périphériques désignés par les tuiles Devices.

Rule engine v5 bloc instr2.png

Plusieurs blocs d'instructions peuvent être définis. La tuile action est appliquée aux périphériques désignés juste derrière elle.

Voici un exemple de syntaxe correcte de clause "Résultat" comprenant plusieurs blocs d'instructions :

Blocs action v5.png

Ce qui donne :

- ON périphérique 1 & 2,

- Switch périphériques 3 & 4,

- OFF périphérique 5


Un bloc d'instruction SET VAL a une syntaxe particulière puisqu'il nécessite 3 tuiles (la commande, la source et la cible)

L'instruction SET VAL copie la valeur de la variable analogique source dans l'analogique cible.

Setval v5 syntaxe.png

Visuel dans le constructeur de règle :

Syntaxe set val.jpg

Drag & Drop

Le moteur de scénario est facile à utiliser grâce à la possibilité de glisser les tuiles de la bibliothèque vers le constructeur de règle.

Quand on dépose une tuile périphérique, une fenêtre de dialogue s’affiche et permet de choisir la ressource parmi une liste de noms.

NB : Seules les ressources compatibles sont affichées.

Pour sélectionner la ressource, vous pouvez taper tout ou partie de son nom dans la zone de recherche (“Chercher dans la liste”).

La liste se met à jour automatiquement dès que vous entrez quelques caractères.

Rule engine drag - drop.gif

Si la vidéo ne démarre pas, cliquez avec le bouton droit et choisissez "ouvrir dans un nouvel onglet"

La modification d'une règle par ajout de tuiles se fait de la même façon par glisser/déposer.

Cliquez sur une tuile pour éditer ses propriétés

Modification tuile rule engine v5.png

Options du menu contextuel :

  • Liste : permet de sélectionner une nouvelle ressource dans la liste des noms,
  • Aller à : raccourci permettant de se rendre sur la page Liens de la ressource sélectionnée,
  • Config : permet de renommer la ressource utilisée,
  • Supprimer : permet de supprimer la tuile.

Les tuiles "Périphériques" par famille

Les tuiles associées à des ressources de type IO

Les tuiles associées à des ressources de type IO peuvent être utilisées seules en événement ou en Résultat.

En Événement

Leur état Vrai ou Faux sera analysé par le système et pourra être déclencheur d'une action. Ces tuiles pourront être utilisées avec les opérateurs booléen ET OU NON

En Résultat

Ces tuiles devront être placées derrière une action ON OFF ON/OFF ou SWITCH.

Les tuiles associées à des valeurs analogiques

Elles ne pourront être utilisées seules, ni en Événement, ni en Résultat.

En Événement

il faudra associer des opérateurs analogiques ( > , >= , == , != , < , <= ) et une valeur de comparaison de manière à construire une expression dont la réponse sera booléenne. Dans ce cas d'utilisation, la clause Événement ne peut pas contenir des opérateurs booléens ou autres IO. La comparaison sera donc seule dans la clause.

🆗 Expression correcte : Comparateur analogique rule engine.png

⛔ Expressions incorrectes (mix booléen-analogique):

Événement incorrect - mix.png

Événement 2 incorrect mix.png

En Résultat

Il faudra obligatoirement utiliser ces tuiles de ressources analogiques conjointement à l'action SET VAL comme vu plus haut.

Set val 2 syntaxe.png

Famille IPX800

Cette famille regroupe les entrées et sorties physiques de l’IPX800, ainsi que quelques variables systèmes comme l’heure de l'IPX800 ou des données de diagnostic.

➡️ note * : Les entrées analogiques peuvent être modifiées par scénario, mais reprennent immédiatement la valeur du capteur connecté (ou 0 si absent).

Cela peut s'avérer utile si l’on veut faire des simulations, dans le cas où ces valeurs serviraient d’événements pour d’autres règles (avec comparateurs).

➡️ note ** : Les entrées digitales peuvent être modifiées par scénario, mais reprennent immédiatement la valeur du capteur connecté si présent (0 si absent).

Tuile périphérique Type Utilisation en événement Utilisation en Résultat
Relais cmd Commande des 8 sorties relais de l'IPX800 IO Détection du changement d'état de l'entrée cmd correspondant au relais Changer l'état de l'entrée Cmd afin de faire basculer physiquement le relais
État relais État des sorties relais de l'IPX800 IO Détection du changement d'état du relais Changer l'état de la sortie relais afin de faire basculer physiquement le relais
Din Entrées digitales IO Détection du changement d'état de l'entrée digitale Changer l'état de l'entrée digitale.

Cela peut avoir un intérêt pour simuler un événement (**)

Ain Entrées analogiques ANA Détection d'un changement de valeur.

Ces tuiles devront être associées à des

opérateurs analogiques (>,>=,==,!=,<,<=).

L'action sera exécutée si la comparaison est vraie

Forcer une valeur avec la commande SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Coll.ouvert Commandes des sorties collecteur ouvert IO Détection du changement d'état de l'entrée cmd correspondant à la sortie Changer l'état de l'IO cmd de la sortie afin de la faire basculer.
Open.coll. state État des sorties collecteur ouvert IO Détection du changement d'état de la sortie Changer l' état de la sortie à collecteur ouvert.
Entrée opto. État des entrées opto-isolées IO Détection du changement d'état de l'entrée opto_isolée Changer l'état d'une entrée opto_isolée.

Cela peut être utile pour simulation (**)

Fréquence opto. Fréquence signal appliqué sur les entrées opto-isolées ANA Détection d'un changement de valeur.

Ces tuiles devront être associées à des

opérateurs analogiques (>,>=,==,!=,<,<=).

L'action sera exécutée si la comparaison est vraie

Forcer une valeur avec la commande SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Réinit. commande de redémarrage de l'IPX800 IO Sans effet Changer l'état de l'entrée afin de faire un redémarrage de l'ipx800 (warm reboot)
IPX800 Contient des variables systèmes et de diagnostique IO Seule la variable SEL BP est de type IO. -
ANA Les autres tuiles doivent être associées à un opérateur analogique.

Il est alors possible de lancer des notifications lors des dépassements de seuils par exemple.

-

Extensions

➡️ note * : Les sorties analogiques des X-THL, X-200PH, X400 ANA, X-400CT, X-010V, … peuvent être modifiées par scénario.

Cela n’est utile que si l’extension n’est pas branchée physiquement et que l’on veut faire des simulations avant de la connecter, dans le cas où ces valeurs serviraient d’événements pour d’autres règles.

En effet, si l’extension est reliée et identifiée par l’IPX par son ID, la valeur imposée par scénario sera aussitôt remplacée par la mesure réelle dès qu’une trame sera reçue sur le bus.

➡️ note ** : Certaines extensions ont des sorties de type IO qui sont en lecture seule (utilisables seulement en événement) mais on peut parfois les glisser quand même en Résultat.

Le moteur de scénario refuse la règle au moment de l’enregistrer lors du contrôle de cohérence. Un message d’alerte “Paramètre non valide” s’affiche.

Tuile périphérique Type Utilisation en événement Utilisation en Résultat
X-8R (Relay) Commandes des 8 sorties relais de l'extension IO Détection du changement d'état de l'entrée cmd Changer l'état de l'entrée Cmd afin de faire basculer physiquement le relais
X-8R (Relay State) État des sorties relais de l'extension IO Détection du changement d'état du relais Changer l'état de la sortie relais afin de faire basculer physiquement le relais.
X-8R (LongClick) Sorties "Appuis longs" de l'extension IO Détection d'un appui long sur l'entrée digitale -
X-8D (Din) Entrées opto-isolées de l'extension IO Détection du changement d'état d'une entrée opto -
X-24D (Din) Entrées digitales de l'extension X-24D ou X-24U IO Détection du changement d'état d'une entrée -
X-4VR Entrées type IO IO Détection du changement d'état d'une entrée Changer l'état des IO de commande VR et BSO pour modifier la position.
Entrées Consignes ANA Utilisation des valeurs avec opérateurs de comparaison Forcer une valeur avec la commande SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Sorties Positions ANA Utilisation des mesures avec opérateurs de comparaison Forcer une valeur avec la commande SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-THL Sortie Défaut IO Détection d'un défaut de sonde Changer l'état pour simulation (*)
Sorties Humidité/Luminosité/Température ANA Utilisation des mesures avec opérateurs de comparaison Changer la valeur par SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Enocean Capteurs IO
Capteurs ANA
Commandes IO
X-DMX Consignes / vitesses de transition ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL pour modifier l'éclairage.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-400 CT Sorties analogiques ANA Utilisation des mesures avec opérateurs de comparaison Changer la valeur par SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-400 ANA Sorties analogiques ANA Utilisation des mesures avec opérateurs de comparaison Changer la valeur par SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-200 PH Sorties pH et ORP ANA Utilisation des mesures avec opérateurs de comparaison Changer la valeur par SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-010V Entrées consignes ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Sorties voltage ANA Utilisation des mesures avec opérateurs de comparaison Changer la valeur par SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Entrées On/Off IO Détection du changement d'état d'une entrée Changer l'état d'une IO pour piloter les 4 canaux
X-Dimmer Entrées On/Off et ON/OFF ALL IO Détection du changement d'état d'une entrée Changer l'état d'une IO pour piloter les 4 canaux
Entrées IO Détection du changement d'état d'une entrée Changer l'état d'une IO pour simuler l'appui sur bouton
Entrées Consignes ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Entrée Vitesse gradation ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Entrées Positions ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-4FP Entrées 6 ordres sur zones IO Détection du changement d'état d'une entrée Changer l'état d'une IO pour envoyer l'ordre correspondant
X-PWM Entrées Consignes ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL pour faire varier la sortie correspondante

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Entrée Fade speed ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-GSM RSSI (Received Signal Strength Indicator) ANA Utilisation de la valeur avec opérateur de comparaison -
X-Display Lock set touch IO Détection du changement d'état de l'entrée Changer l'état pour verrouiller la configuration sur l'écran
On/off screen IO Détection du changement d'état de l'entrée Changer l'état pour allumer/éteindre l'écran
select screen ANA Utilisation de la valeur avec opérateur de comparaison Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-POOL (Relay State) État des sorties relais IO Détection du changement d'état de la sortie relais (**)
X-POOL (Input) État des entrées digitales IO Détection du changement d'état de l'entrée (**)
X-POOL (Analog) Mesures PH/ORP/Temp air et Eau ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL. Utile pour simulation (*)

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

X-POOL (Notif) État des sorties Notifications IO Détection du changement d'état de la sortie notification (**)
SWITCH-EBX - - -
X-POOL (Relay Cmd) Commande des relais X-POOL IO Détection du changement d'état de l'entrée Changer l'état de l'entrée Cmd afin de faire basculer physiquement le relais

Objets

Tuile périphérique Type Utilisation en événement actions possibles Utilisation en Résultat
Fonction Entrée (X) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Résultat ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Push On/Off IO Détection du changement d'état de l'entrée On/Off ON/ON-OFF/OFF/SWITCH Modifier l'état de l'entrée On/Off pour envoyer la requête correspondant au nouvel état.
Preset Consigne ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
On/Off IO Détection du changement d'état de l'entrée On/Off ON/ON-OFF/OFF/SWITCH Modifier l'état de l'entrée On/Off pour forcer la consigne correspondant au nouvel état
Mail On/Off IO Détection du changement d'état de l'entrée On/Off ON/ON-OFF/OFF/SWITCH Modifier l'état de l'entrée On/Off pour envoyer le message correspondant au nouvel état.
Calendrier Enable IO Détection du changement d'état de l'entrée Enable ON/ON-OFF/OFF/SWITCH Modifier l'état pour activer ou désactiver le calendrier
State IO Détection du changement d'état de la sortie State -
Délai Countdown ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Enable/RST IO Détection du changement d'état de l'entrée Enable ON/ON-OFF/OFF/SWITCH Modifier l'état pour activer ou désactiver ou réinitialiser l'objet
Output IO Détection du changement d'état de l'entrée Output ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Start IO Détection du changement d'état de l'entrée Start ON/ON-OFF/OFF/SWITCH Modifier l'état (Action OFF non prise en compte si mode Hold)
Time(TA) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Tempo. Countdown ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Enable/RST IO Détection du changement d'état de l'entrée Enable ON/ON-OFF/OFF/SWITCH Modifier l'état pour activer ou désactiver ou réinitialiser l'objet
Output IO Détection du changement d'état de l'entrée Output ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Start IO Détection du changement d'état de l'entrée Start ON/ON-OFF/OFF/SWITCH Modifier l'état (Action OFF non prise en compte si mode Hold)
Time(TB) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Chrono. Countdown ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Reset IO Détection du changement d'état de l'entrée Reset ON/ON-OFF/SWITCH Modifier l'état pour réinitialiser le chrono (impulsionnel)
Run/Pause IO Détection du changement d'état de l'entrée Run/Pause ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF pour relancer ou mettre en pause
Impulsion Countdown (TA) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Countdown(TB) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Enable/RST IO Détection du changement d'état de l'entrée Enable ON/ON-OFF/OFF/SWITCH Modifier l'état pour activer ou désactiver ou réinitialiser l'objet
Output IO Détection du changement d'état de l'entrée Output ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Start IO Détection du changement d'état de l'entrée Start ON/ON-OFF/OFF/SWITCH Modifier l'état (Action OFF non prise en compte si mode Hold)
Time(TA) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Time(TB) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Clignotant Countdown (TA) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Countdown(TB) ANA Utilisation des valeurs avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Enable/RST IO Détection du changement d'état de l'entrée Enable ON/ON-OFF/OFF/SWITCH Modifier l'état pour activer ou désactiver ou réinitialiser l'objet
Output IO Détection du changement d'état de l'entrée Output -
Start IO Détection du changement d'état de l'entrée Start ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Time(TA) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Time(TB) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Comparateur Entrée (A) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Entrée (B) ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Enable IO Détection du changement d'état de l'entrée Start ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Output IO Détection du changement d'état de l'entrée Start L'état peut être modifié mais sera réévalué à la variation A ou B suivante.
Compteur Counter value ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL
Dec - IO Détection du changement d'état de l'entrée Start ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour décrémenter la valeur du compteur
Enable IO Détection du changement d'état de l'entrée Start ON/ON-OFF/OFF/SWITCH Modifier l'état pour activer/désactiver compteur
Inc+ IO Détection du changement d'état de l'entrée Start ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour incrémenter la valeur du compteur
Reset IO Détection du changement d'état de l'entrée Start ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour RàZ la valeur du compteur
Set IO Détection du changement d'état de l'entrée Start ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour initialiser la valeur du compteur
Set value ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Step value ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Changer la valeur par SET VAL.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

MQTT Publish
MQTT Subscribe
MQTT All
Thermostat Comfort IO Détection du changement d'état de l'entrée Start ON Modifier l'état à ON pour forcer le mode Confort et désactiver le mode précédent
Eco IO Détection du changement d'état de l'entrée Start ON Modifier l'état à ON pour forcer le mode ECO et désactiver le mode précédent
Fault IO Détection du changement d'état de l'entrée Start - -
Measure ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Modifier sa valeur par SET VAL. Utile pour simulation.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

No Frost IO Détection du changement d'état de l'entrée ON Modifier l'état à ON pour forcer le mode Hors-Gel et désactiver le mode précédent
On/Off IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF pour autoriser ou non le chauffage
Output IO Détection du changement d'état de l'entrée - -
Télérupteur Input IO Détection du changement d'état de l'entrée ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour basculer la sortie
Output IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Monostable Input IO Détection du changement d'état de l'entrée ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour basculer la sortie
Output IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Appui long Input IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF pour basculer une sortie en fonction du temps passé à ON
Output IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Long Click IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Double click Input IO Détection du changement d'état de l'entrée ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour basculer la sortie en fonction du nombre de clicks sur temps imparti
Output IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Double click IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Bascule RS SET IO Détection du changement d'état de l'entrée ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour basculer la sortie sur ON
RESET IO Détection du changement d'état de l'entrée ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour basculer la sortie sur OFF
Output IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Fader Fade Time ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Modifier sa valeur par SET VAL. Utile pour simulation.

Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.

Loop On/Off IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF pour démarrer/arrêter le mode Loop
Output ANA Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Start IO Détection du changement d'état de l'entrée ON/ON-OFF/SWITCH Modifier l'état à ON (impulsionnel) pour démarrer la variation sur 1 cycle si mode Loop désactivé
Ping Watchdog Enable IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Fault IO Détection du changement d'état de l'entrée - -
Modbus lecture
Modbus écriture
Planning TOR Enable IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Output IO Détection du changement d'état de l'entrée -
Planning ANA Enable IO Détection du changement d'état de l'entrée ON/ON-OFF/OFF/SWITCH Modifier l'état à ON ou OFF
Output ANA Utilisation de la valeur avec opérateurs de comparaison SET VAL Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
Parser JSON - - - -

Variables

Tuile périphérique Type Utilisation en événement Utilisation en Résultat
Virtual IO IO Virtuelle IO Détection du changement de l'état de la variable Modification de l'état de la variable
Virtual Ana 8 à 32 Virtual Ana ANA Utilisation des valeurs avec opérateurs de comparaison Changer la valeur par SET VAL

Modules

Tuile périphérique Type Utilisation en événement Utilisation en Résultat
Météo
HUE
IPX800 V4
Player

Scénario

Il est possible de modifier l'IO représentant l'état Résultat d'une Règle. Cependant cette sortie est utilisée par le système, il vaut mieux s'abstenir de l'utiliser.

Tuile périphérique Type Utilisation en événement Utilisation en Résultat
Scène Entrée Enable de chaque scène existante IO Détection du changement d'état de l'entrée Modification de l'état de l'entrée. Activation/désactivation des règles contenues dans la scène.
Règle Entrée Enable de chaque règle existante IO Détection du changement d'état de l'entrée Modification de l'état de l'entrée. Activation/désactivation de la règle.
Sortie Résultat de chaque règle IO Détection du changement d'état de l'entrée. Ne pas utiliser

Exemple d'utilisation de la Tuile Règle en Événement :

Image règle resultat.png


Dans cet exemple, la première règle, nommée « MAISON OFF » permet de construire une clause

utilisable par son nom.

Dans les règles suivantes, la tuile Rule (Résultat) à laquelle est associée la clause « MAISON OFF », est utilisée afin

  • de créer un groupe visuellement repérable
  • d’éviter l’usage d’IO virtuelles ou de répéter la clause de l’événement.


NB : la variable Enable de la règle ne stoppe pas l’activité de l’interpréteur d’évènements, mais inhibe l'exécution des actions. De ce fait, la variable Result est constamment réévaluée par le Rule Engine, quel que soit l'état de Enable.

Vérification automatique

Au moment de la rédaction de ce wiki, le vérificateur porte sur la clause Événement uniquement.

Voici les différents messages d'erreurs :

Message Origine Résolution
Erreur - Mélange IO/ANA Tuiles IO et ANA mélangées en clause Événement Supprimer des tuiles
Erreur- Opérateur manquant - Tuile ana en événement non accompagnée d'un opérateur de comparaison

- tuiles IO non séparées par un opérateur logique ET ou OU

ajouter les éléments de comparaison
Erreur - ID d'entrée manquant La syntaxe en événement est incorrecte. il manque une ressource. ajouter les tuiles manquantes

Contourner les limites du Rule Engine

Exemples proposés par @Michel94.

Les deux contraintes souvent remontées au sujet des règles sont l’absence de gestion des parenthèses et l’impossibilité de mélanger des conditions booléenne (Io) avec des comparaisons analogiques .

Avec l’Ipxv5, dans les cas simples, il est pourtant facile de contourner ces contraintes en créant des règles simplifiées représentant les variables contenues entre les parenthèses et en les insérant dans la règle principale en utilisant leur variable Result

Exemple 1 : priorisation de blocs logiques

construisons la logique suivante : (ioA et ioB) et (ioC ou ioD) -> action

Logique combinatoire-rule engine.png

Rappelons que cette expression est identique à l'expression classique : ioC OU ioD ET ioA ET ioB

Exemple 2 : Mixer analogiques et IO

Règle (ioA ou ioB) et (analogE > analogF) ->action

Rule-engine combi ana-io.png


Pour plus de lecture, voici le lien vers le post original