Différences entre les versions de « IHM V5 en détails : Le moteur de scenario »

De GCE Electronics
Aller à la navigation Aller à la recherche
 
(71 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{sommaire|niveau=3|flottant=left}}
{{sommaire|niveau=3|flottant=left}}
Niveau de mise à jour : 5.5.6 (09/11/2023)
Niveau de mise à jour : Firmware 5.5.6 (09/11/2023)


== Avant-propos ==
== Avant-propos ==
Le moteur de scénario utilise les ressources de la V5. Avant de lire cet article, je vous invite à vous familiariser avec les principes de fonctionnement des différents objets de la V5, leurs entrées et sorties, le plus souvent différenciées entre commande et retour d'état. La description et le rôle de chaque entrée ou sortie doivent être connus.
{{Infobox IPX800
| titre        = Rule Engine
| image        = rule-engine-Dall-E.jpg
| famille      = IPX800 V5
| date-create  = 27/11/2023
| date-update  = 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.


'''Rappel''' : il est essentiel de choisir des noms de variables significatifs lorsque vous renommez les ressources de la V5. Adopter une nomenclature précise vous permettra une écriture plus rapide des règles et un débogage plus facile..
# '''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.
#'''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.
# '''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.
# '''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. [https://wiki.gce-electronics.com/index.php?title=IHM_V5_en_d%C3%A9tails_:_Les_liens 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.


[https://wiki.gce-electronics.com/index.php?title=IHM_V5_en_d%C3%A9tails_:_Les_liens IHM V5 en détails : Les liens]
 
'''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 ==
==Présentation ==
{{Infobox IPX800
| titre        = IPX800 V5
| image        = V5-presentation.png
| famille      = IPX800 V5
| date-create  = 27/11/2023
| date-update  = 27/11/2023
| auteur = @fgtoul
}}


L'automate IPX800 V5 embarque un moteur de scénario puissant et facile à appréhender, Il sera alors aisé de programmer des actions sur événements déclencheurs.


Tous les objets, variables et ressources peuvent être scénarisés, en tant que déclencheur, variable de sortie ou encore actionneur.
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.  
Des tuiles préconfigurées  peuvent-être glissées et déposées dans des conteneurs  nommés '''Événement''' et '''Résultat''' pour constituer les règles.  


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 essaierons d'expliquer la logique de fonctionnement du Rule Engine qui semble dérouter certains utilisateurs et nous en profiterons pour étudier les différents outils mis à notre disposition.
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 certains sujets déjà abordés dans d'autres articles ou documentation concernant l'IPX800 V5.
Nous approfondirons également certains sujets liés à l’IPX800 V5, qui ont été traités dans d’autres articles ou documents.


==Terminologie==
==Terminologie==


=== Entrée/Sortie IO : information booléenne ===
=== information booléenne (IO) ===
C'est une valeur booléenne prenant les états VRAI ou FAUX. Dans le langage courant, il est habituel d'utiliser également les valeurs ON, OFF ou 1 et 0.
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 représenter des commandes, des actionneurs TOR ('''T'''out '''O'''u '''R'''ien), des retours d'état ou même des variables créées par le système ou par l'utilisateur.
Ces valeurs peuvent indiquer l'état des commandes, des actionneurs TOR ('''T'''out '''O'''u '''R'''ien), des retours d'état ou même des variables créées par le système, nous parlerons d'IO systèmes.


Dans ce dernier cas nous parlerons de <u>variables</u> de type IO virtuelles..
L'utilisateur peut également créer des variables booléennes que nous appellerons IO virtuelles..


=== Entrée/Sortie analogique : information numérique ===
=== information numérique (Analogique) ===
Les valeurs analogiques peuvent contenir des nombres entiers ou réels (avec décimales), positifs ou négatifs, avec une largeur maximale de 32 bits.
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 être représentatives des ressources comme les entrées ou sorties analogiques ou encore des variables créées par l'utilisateur pour ses besoins en programmation. Dans ce dernier cas nous parlerons de <u>variables</u> de type analogiques virtuelles.
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 ===
=== Événement ===
Un événement correspond au changement d'état pour une IO ou au changement de valeur pour une ressource analogique.
Un événement est défini par une variation d’état pour une IO ou une variation de valeur pour une ressource analogique.  


Exemples :  
Exemples :  


* un capteur s'ouvre et se ferme, l'entrée digitale sur laquelle il est connecté change d'état simultanément. Ces changements d'état (passages de ON à OFF ou de OFF à ON) constituent les événement détectés par l'IPX800 V5 et pourront être utilisés comme déclencheurs d'actions définies.
📝 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.  


* la température lue par un capteur varie. L'entrée analogique sur laquelle il est connecté varie simultanément. Cette variation est perçue par l'IPX800 et pourra être utilisée dans le moteur de scénario pour exécuter des actions définies.
📝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.  
* L'utilisateur crée une variable de type IO virtuelle. L'état de cette variable est modifié par un moyen quelconque (par lien, API, manuellement  ou par scénario). Ce changement d'état est utilisable dans le moteur de scénario.
* L'utilisateur crée une variable analogique virtuelle dans laquelle il stocke une valeur numérique. Cette valeur est modifiée soit via un widget sur le dashboard, soit par l'API. Ces variations de valeur sont des événements qui seront perçus et utilisables dans le moteur de scénario.
* Un bouton poussoir connecté sur une entrée de l'extension X-8R est appuyé, ce qui provoque la fermeture du relais correspondant. Le changement d'état de ce relais est un événement qui pourra être utilisé pour déclencher des actions si nécessaire.


=== Règle ===
=== Règle ===
Une règle constitue une mise en relation de cause à effet déterminant les périphériques à piloter selon la survenance d'événements prédéfinis.
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 est constituée d'une clause '''Événement''' qui regroupe toutes les conditions essentielles à l'action, et la clause '''Résultat''' qui regroupe les actions à mener.
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 :  
exemples :  


* Cas 1 :
📝cas 1  
**Événement  : si l'interrupteur change d'état et si la luminosité est insuffisante,
 
**Résultat : allumer le plafonnier
* Événement  : si l'interrupteur change d'état et si la luminosité est insuffisante,  
* Résultat : allumer le plafonnier  


* Cas 2:
📝Cas 2:
**Événement : si la température intérieure est inférieure à 18°C
*Événement : si la température intérieure est inférieure à 18°C
**Résultat : allumer le radiateur, sinon il faut l'éteindre
*Résultat : allumer le radiateur, sinon il faut l'éteindre
* Cas 3:
📝Cas 3:
**Événement : si le soleil est couché,
*É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.
*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.
  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===
===Scène===
Une scène est une enveloppe permettant de '''regrouper''' '''des règles''' ayant la même fonctionnalité.
Une scène est un '''ensemble de règles''' qui ont la même fonctionnalité.


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


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


Avec une scène, Il est également possible de créer un groupe de règles qui pourra être activé ou désactivé sous certaines conditions.
Avec une scène, vous pouvez aussi créer un groupe de règles qui peut être activé ou désactivé selon certaines conditions.
  Lorsqu'une scène est désactivée, toutes les règles qu'elle contient sont ignorées par le moteur de scénario.
  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 :
   
   
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”.
  - l'été, inhiber toutes les commandes concernant le chauffage : -> si la date est comprise 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."
  - l'hiver, si la piscine est en 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.
Il est possible de créer 64 scènes au total, chacune d'elle pouvant regrouper 32 règles.
== Gestion des scènes ==
== Gestion des scènes ==
Ligne 97 : Ligne 106 :
Le point d'entrée du Rule Engine est la page de gestion des scènes.
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''.
Si votre système ne comporte aucune scène, cliquez sur le bouton ''Ajouter scène dans le menu supérieur''.


[[Fichier:Ajout scène v5.jpg|sans_cadre]]
[[Fichier:Ajout scène v5.jpg|sans_cadre]]
Ligne 147 : Ligne 156 :
[[Fichier:Library operateurs.png|sans_cadre|352x352px]]
[[Fichier:Library operateurs.png|sans_cadre|352x352px]]


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


  '''Important''' : Pour conditionner une action sur 2 événements ou plus, il faut obligatoirement les séparer par un opérateur <code>ET</code> ou <code>OU</code>
  '''Important''' : Pour conditionner une action sur 2 événements ou plus, il faut obligatoirement les séparer par un opérateur <code>ET</code> ou <code>OU</code>
Ligne 154 : Ligne 163 :
'''Opérateur ET'''
'''Opérateur ET'''


Table de vérité avec Vrai=1 et Faux=0
Voici la table de vérité de la fonction ET, avec Vrai=1 et Faux=0 :
{| class="wikitable"
{| class="wikitable"
|+
|+
Ligne 184 : Ligne 193 :
'''Opérateur OU'''
'''Opérateur OU'''


Table de vérité avec Vrai=1 et Faux=0
Voici la table de vérité de l'opérateur OU, avec Vrai=1 et Faux=0 :
{| class="wikitable"
{| class="wikitable"
|+
|+
Ligne 216 : Ligne 225 :
La fonction logique <code>NON</code> permet d'utiliser l'état inverse d'un événement.
La fonction logique <code>NON</code> permet d'utiliser l'état inverse d'un événement.


Cette fonction est souvent utilisée pour exécuter une action sur changement d'état d'un capteur NF ('''N'''ormalement '''F'''ermé) mais peut également être utilisée sur toute ressource de type IO physique ou virtuelle.  
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.  


Table de vérité avec Vrai=1 et Faux=0
Voici la table de vérité de la fonction NON, avec Vrai=1 et Faux=0 :
{| class="wikitable"
{| class="wikitable"
|+
|+
Ligne 234 : Ligne 243 :
'''Opérateurs analogiques'''
'''Opérateurs analogiques'''


Les tuiles d'opérateurs suivants sont utilisées pour faire des comparaisons sur des valeurs analogiques.
Les tuiles d’opérateurs suivantes servent à comparer des valeurs analogiques.


Elles peuvent être utilisées dans la construction de l'expression '''Événement'''.
Elles peuvent être employées pour construire l’expression '''Événement'''.
{| class="wikitable"
{| class="wikitable"
|+
|+
Ligne 280 : Ligne 289 :


=== Le fonctionnement d'une règle ===
=== Le fonctionnement d'une règle ===
[[Fichier:Illustration rule engine.png|sans_cadre|688x688px]]


==== Événement ====
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 =====
===== 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 <code>ET</code>,<code> OU</code>.
➡️ 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 <code>ET</code>,<code> OU</code>.


➡️L'état logique de la clause '''Événement''' conditionne l'exécution des actions sur périphériques peuplant l'expression '''Résultat'''.
➡️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 <code>ON</code>, <code>OFF</code>, <code>SWITCH</code>, <code>SET VAL</code> 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.
➡️ Les actions <code>ON</code>, <code>OFF</code>, <code>SWITCH</code>, <code>SET VAL</code> 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 <code>ON/OFF</code> tenant compte de tout changement d'état sera exécutée <u>une seule fois</u> à chaque changement VRAI ou FAUX de l'expression Événement.
➡️ L'action <code>ON/OFF</code> tenant compte de tout changement d'état sera exécutée <u>une seule fois</u> à 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).
  '''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 [[Fichier:Flag erreur rule engine.png|sans_cadre]] à gauche du constructeur de la règle.
  Si vous mixez les genres par inadvertance, le moteur de scénario vous signalera l'erreur avec le flag [[Fichier:Flag erreur rule engine.png|sans_cadre]] à gauche du constructeur de la règle.
   
   
Ligne 297 : Ligne 313 :
   
   
  [[Fichier:Expression interdite événement.png|sans_cadre|340x340px]]  [[Fichier:Événement interdit mix ana et io.png|sans_cadre|374x374px]]
  [[Fichier:Expression interdite événement.png|sans_cadre|340x340px]]  [[Fichier:Événement interdit mix ana et io.png|sans_cadre|374x374px]]
Nous verrons plus bas comment contourner cette contrainte.


===== Évaluation d'une clause Événement =====
===== Évaluation d'une clause "Événement" =====
Nous avons vu plus haut que la clause Événement peut être peuplée par des événements combinés par <code>ET</code>, <code>OU</code>.


L'expression est évaluée de gauche à droite, événement par é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.


Exemple :
Nous verrons plus bas comment contourner facilement cette contrainte.


Soient 4 événements E1, E2, E3, E4. Prenons l'expression logique combinant ces 4 événements :  
 
 
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
E1 ET E2 OU E3 ET NON E4


L'évaluation par l'IPX800 de cette expression se fait en 4 étapes :
L’IPX800 évalue cette expression en 4 étapes :


[[Fichier:Logique rule engine.png|sans_cadre|576x576px]]
[[Fichier:Logique rule engine.png|sans_cadre|576x576px]]


Étape 1 : évaluation de A=E1 ET E2
* É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"


Étape 2 : évaluation de B=A OU E3
'''NB : L'évaluation de R est faite à chaque changement d'état des événements E1, E2, E3 ou E4.'''


Étape 3 : évaluation de C=NON(E4)
==== Clause "Résultat" ====


Étape 4 : évaluation de R = B ET C
===== Principes =====
➡️ La clause "'''Résultat'''" doit contenir <u>au moins</u> 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'''.


L'évaluation de R est faite à chaque changement d'état des événements E1, E2, E3 et E4.
===== Évaluation d'une clause Résultat =====
 
L'interpréteur de résultat évalue l'expression, de gauche à droite, bloc après bloc.
==== Résultat ====


===== Principes =====
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.
➡️ 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'''.
[[Fichier:Rule engine v5 bloc instr2.png|sans_cadre|245x245px]]


===== Évaluation d'une clause Résultat =====
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.
Plusieurs actions peuvent être définies. La tuile action est appliquée aux périphériques désignés juste derrière elle.


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


[[Fichier:Blocs action v5.png|sans_cadre|490x490px]]
[[Fichier:Blocs action v5.png|sans_cadre|490x490px]]
Ligne 348 : Ligne 368 :




L'Action <code>SET VAL</code> a une syntaxe particulière puisqu'elle nécessite 3 tuiles.
Un bloc d'instruction  <code>SET VAL</code> 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.
 
[[Fichier:Setval v5 syntaxe.png|sans_cadre|192x192px]]


[[Fichier:Image SET VAL syntaxe.png|sans_cadre|246x246px]][[Fichier:Syntaxe set val.jpg|sans_cadre]]
Visuel dans le constructeur de règle :


Dans cet exemple, nous appliquons la valeur ANA1 à la variable analogique ANA2.
[[Fichier:Syntaxe set val.jpg|sans_cadre]]


=== Drag & Drop ===
=== Drag & Drop ===
La simplicité d'utilisation du moteur de scénario est en grande partie due au fait de pouvoir glisser les tuiles de la bibliothèque vers le constructeur de règle.
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.


A chaque fois que l'on dépose une tuile périphérique , une fenêtre de dialogue s'ouvre et permet la sélection de la ressource dans une liste de noms.
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 listées.'''
'''NB : Seules les ressources compatibles sont affichées.'''


Lors de la sélection de la ressource, vous pouvez rechercher celle-ci par tout ou partie du nom dans la zone de recherche ("Chercher dans la liste").
Pour sélectionner la ressource, vous pouvez taper tout ou partie de son nom dans la zone de recherche (“Chercher dans la liste”).


Il suffit de valider quelques caractères pour que la liste s'adapte automatiquement.
La liste se met à jour automatiquement dès que vous entrez quelques caractères.


[[Fichier:Rule engine drag - drop.gif|sans_cadre|700x700px]]
[[Fichier:Rule engine drag - drop.gif|sans_cadre|700x700px]]
Ligne 383 : Ligne 407 :


=== Les tuiles "Périphériques" par famille ===
=== 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 ====
Les tuiles associées à des ressources de type IO peuvent être utilisées seules en événement ou en Résultat.
Les tuiles associées à des ressources de type IO peuvent être utilisées seules en événement ou en Résultat.


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


==== '''Les tuiles associées à des valeurs analogiques''' ====
==== Les tuiles associées à des valeurs analogiques ====
Elles ne pourront être utilisées seules, ni en Événement, ni en Résultat.  
Elles ne pourront être utilisées seules, ni en Événement, ni en Résultat.  


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


[[Fichier:Événement incorrect - mix.png|sans_cadre|445x445px]] [[Fichier:Événement 2 incorrect mix.png|sans_cadre|339x339px]]
[[Fichier:Événement incorrect - mix.png|sans_cadre|445x445px]]  
 
[[Fichier:Événement 2 incorrect mix.png|sans_cadre|575x575px]]


===== En Résultat =====
===== En Résultat =====
Il faudra obligatoirement utiliser ces tuiles de ressources analogiques conjointement à l'action <code>SET VAL</code> comme vu plus haut.
Il faudra obligatoirement utiliser ces tuiles de ressources analogiques conjointement à l'action <code>SET VAL</code> comme vu plus haut.


[[Fichier:Image SET VAL syntaxe.png|sans_cadre|204x204px]]
[[Fichier:Set val 2 syntaxe.png|sans_cadre|190x190px]]


==== Famille IPX800 ====
==== Famille IPX800 ====
Cette famille regroupe les entrées et sorties physiques de l'IPX800, ainsi que quelques variables systèmes comme l'horloge système ou encore des valeurs  de diagnostique.
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 <span style="color: red">*</span> : 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 <span style="color: red">**</span> : 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).


{| class="wikitable"  
{| class="wikitable"  
Ligne 421 : Ligne 452 :
!Utilisation en Résultat
!Utilisation en Résultat
|-
|-
|style="background-color:#FFFFFF;"|'''Relais cmd'''
| style="background-color:#FFFFFF;" |'''Relais cmd'''
'''[[Fichier:Relay cmd.png|sans_cadre]]'''
| style="background-color:#FFFFFF;" |Commande des 8 sorties relais de l'IPX800
|style="background-color:#FFFFFF;"|Commande des 8 sorties relais de l'IPX800
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |Détection du changement d'état de l'entrée cmd correspondant au relais
|style="background-color:#FFFFFF;"|Détection du changement d'état de l'entrée cmd correspondant au relais
| style="background-color:#FFFFFF;" |Changer l'état de l'entrée Cmd afin de faire basculer physiquement le relais
|style="background-color:#FFFFFF;"|Changer l'état de l'entrée Cmd afin de faire basculer physiquement le relais
|-
|-
|'''État relais'''
|'''État relais'''
Ligne 434 : Ligne 464 :
|Changer l'état de la sortie relais afin de faire basculer physiquement le relais
|Changer l'état de la sortie relais afin de faire basculer physiquement le relais
|-
|-
|style="background-color:#FFFFFF;"|'''Din'''
| style="background-color:#FFFFFF;" |'''Din'''
|style="background-color:#FFFFFF;"|Entrées digitales
| style="background-color:#FFFFFF;" |Entrées digitales
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Détection du changement d'état de l'entrée digitale
| style="background-color:#FFFFFF;" |Détection du changement d'état de l'entrée digitale
|style="background-color:#FFFFFF;"|Changer l'état de l'entrée digitale.
| style="background-color:#FFFFFF;" |Changer l'état de l'entrée digitale.
Cela peut avoir un intérêt pour simuler un événement.
Cela peut avoir un intérêt pour simuler un événement (<span style="color: red">**</span>)
|-
|-
|'''Ain'''
|'''Ain'''
Ligne 450 : Ligne 480 :


L'action sera exécutée si la comparaison est vraie
L'action sera exécutée si la comparaison est vraie
|Forcer une valeur avec la commande SET VAL.
|Forcer une valeur avec la commande SET VAL. Utile pour simulation (<span style="color: red">*</span>)
 
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;"|'''Coll.ouvert'''
| style="background-color:#FFFFFF;" |'''Coll.ouvert'''
|style="background-color:#FFFFFF;"|Commandes des sorties collecteur ouvert
| style="background-color:#FFFFFF;" |Commandes des sorties collecteur ouvert
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Détection du changement d'état de l'entrée cmd correspondant à la sortie
| style="background-color:#FFFFFF;" |Détection du changement d'état de l'entrée cmd correspondant à la sortie
|style="background-color:#FFFFFF;"|Changer l'état de l'IO cmd de la sortie afin de la faire basculer.
| style="background-color:#FFFFFF;" |Changer l'état de l'IO cmd de la sortie afin de la faire basculer.
|-
|-
|'''Open.coll. state'''
|'''Open.coll. state'''
Ligne 464 : Ligne 496 :
|Changer l' état de la sortie à collecteur ouvert.
|Changer l' état de la sortie à collecteur ouvert.
|-
|-
|style="background-color:#FFFFFF;"|'''Entrée opto.'''
| style="background-color:#FFFFFF;" |'''Entrée opto.'''
|style="background-color:#FFFFFF;"|État des entrées opto-isolées
| style="background-color:#FFFFFF;" |État des entrées opto-isolées
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Détection du changement d'état de l'entrée opto_isolée
| style="background-color:#FFFFFF;" |Détection du changement d'état de l'entrée opto_isolée
|style="background-color:#FFFFFF;"|Changer l'état d'une entrée opto_isolée.
| style="background-color:#FFFFFF;" |Changer l'état d'une entrée opto_isolée.
Cela peut être utile pour simulation.
Cela peut être utile pour simulation (<span style="color: red">**</span>)
|-
|-
|'''Fréquence opto.'''
|'''Fréquence opto.'''
Ligne 480 : Ligne 512 :


L'action sera exécutée si la comparaison est vraie
L'action sera exécutée si la comparaison est vraie
|Forcer une valeur avec la commande SET VAL. Utile pour simulation.
|Forcer une valeur avec la commande SET VAL. Utile pour simulation (<span style="color: red">*</span>)
 
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;"|'''Réinit.'''
| style="background-color:#FFFFFF;" |'''Réinit.'''
|style="background-color:#FFFFFF;"|commande de redémarrage de l'IPX800
| style="background-color:#FFFFFF;" |commande de redémarrage de l'IPX800
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Sans effet
| style="background-color:#FFFFFF;" |Sans effet
|style="background-color:#FFFFFF;"|Changer l'état de l'entrée afin de faire un redémarrage de l'ipx800 (warm reboot)
| style="background-color:#FFFFFF;" |Changer l'état de l'entrée afin de faire un redémarrage de l'ipx800 (warm reboot)
|-
|-
|'''IPX800'''
|'''IPX800'''
Ligne 503 : Ligne 537 :


==== Extensions ====
==== Extensions ====
Les sorties analogiques des X-THL, X-200PH, X400 ANA, X-400CT, X-010V, ...  sont modifiables par scénario. Cela n'a d'intérêt que si l'extension n'est pas physiquement installée et que l'on souhaite faire des simulations avant branchement.
➡️ note <span style="color: red">*</span> :  Les sorties analogiques des X-THL, X-200PH, X400 ANA, X-400CT, X-010V, … peuvent être modifiées par scénario.  


En effet, si l'extension est connectée et reconnue par l'IPX avec son ID, la valeur forcée par scénario sera immédiatement remplacée par la vraie mesure dès qu'une trame arrivera sur le bus.
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 <span style="color: red">**</span> : 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.
{| class="wikitable"
{| class="wikitable"
!Tuile
!Tuile
Ligne 525 : Ligne 565 :
|Changer l'état de la sortie relais afin de faire basculer physiquement le relais.
|Changer l'état de la sortie relais afin de faire basculer physiquement le relais.
|-
|-
|style="background-color:#FFFFFF;"|'''X-8R (LongClick)'''
| style="background-color:#FFFFFF;" |'''X-8R (LongClick)'''
|style="background-color:#FFFFFF;"|Sorties "Appuis longs" de l'extension
| style="background-color:#FFFFFF;" |Sorties "Appuis longs" de l'extension
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Détection d'un appui long sur l'entrée digitale
| style="background-color:#FFFFFF;" |Détection d'un appui long sur l'entrée digitale
|style="background-color:#FFFFFF;"| -
| style="background-color:#FFFFFF;" | -
|-
|-
|'''X-8D (Din)'''
|'''X-8D (Din)'''
Ligne 537 : Ligne 577 :
| -
| -
|-
|-
|style="background-color:#FFFFFF;"|'''X-24D (Din)'''
| style="background-color:#FFFFFF;" |'''X-24D (Din)'''
|style="background-color:#FFFFFF;"|Entrées digitales de l'extension X-24D ou X-24U
| style="background-color:#FFFFFF;" |Entrées digitales de l'extension X-24D ou X-24U
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Détection du changement d'état d'une entrée
| style="background-color:#FFFFFF;" |Détection du changement d'état d'une entrée
|style="background-color:#FFFFFF;"| -
| style="background-color:#FFFFFF;" | -
|-
|-
|'''X-4VR'''
|'''X-4VR'''
Ligne 553 : Ligne 593 :
|ANA
|ANA
|Utilisation des valeurs avec opérateurs de comparaison
|Utilisation des valeurs avec opérateurs de comparaison
|Changer la valeur par SET VAL pour modifier la position.
|Forcer une valeur avec la commande SET VAL.
 
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|
|
Ligne 559 : Ligne 601 :
|ANA
|ANA
|Utilisation des mesures avec opérateurs de comparaison
|Utilisation des mesures avec opérateurs de comparaison
|Changer la valeur par SET VAL. Utile pour simulation
|Forcer une valeur avec la commande SET VAL.
 
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;"|'''X-THL'''
| style="background-color:#FFFFFF;" |'''X-THL'''
|style="background-color:#FFFFFF;"|Sortie Défaut
| style="background-color:#FFFFFF;" |Sortie Défaut
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Détection d'un défaut de sonde
| style="background-color:#FFFFFF;" |Détection d'un défaut de sonde
|style="background-color:#FFFFFF;"|Changer l'état pour simulation.
| style="background-color:#FFFFFF;" |Changer l'état pour simulation (<span style="color: red">*</span>)
|-
|-
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |
|style="background-color:#FFFFFF;"|Sorties Humidité/Luminosité/Température
| style="background-color:#FFFFFF;" |Sorties Humidité/Luminosité/Température
|style="background-color:#FFFFFF;"|ANA
| style="background-color:#FFFFFF;" |ANA
|style="background-color:#FFFFFF;"|Utilisation des mesures avec opérateurs de comparaison
| style="background-color:#FFFFFF;" |Utilisation des mesures avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|Changer la valeur par SET VAL. Utile pour simulation
| style="background-color:#FFFFFF;" |Changer la valeur par SET VAL. Utile pour simulation (<span style="color: red">*</span>)
 
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|'''Enocean'''
|'''Enocean'''
Ligne 591 : Ligne 637 :
|
|
|-
|-
|style="background-color:#FFFFFF;"|'''X-DMX'''
| style="background-color:#FFFFFF;" |'''X-DMX'''
|style="background-color:#FFFFFF;"|Consignes / vitesses de transition
| style="background-color:#FFFFFF;" |Consignes / vitesses de transition
|style="background-color:#FFFFFF;"|ANA
| style="background-color:#FFFFFF;" |ANA
|style="background-color:#FFFFFF;"|Utilisation des valeurs avec opérateurs de comparaison
| style="background-color:#FFFFFF;" |Utilisation des valeurs avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|Changer la valeur par SET VAL pour modifier l'éclairage.
| style="background-color:#FFFFFF;" |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'''
|'''X-400 CT'''
Ligne 601 : Ligne 649 :
|ANA
|ANA
|Utilisation des mesures avec opérateurs de comparaison
|Utilisation des mesures avec opérateurs de comparaison
|Changer la valeur par SET VAL. Utile pour simulation
|Changer la valeur par SET VAL. Utile pour simulation (<span style="color: red">*</span>)
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;"|'''X-400 ANA'''
| style="background-color:#FFFFFF;" |'''X-400 ANA'''
|style="background-color:#FFFFFF;"|Sorties analogiques
| style="background-color:#FFFFFF;" |Sorties analogiques
|style="background-color:#FFFFFF;"|ANA
| style="background-color:#FFFFFF;" |ANA
|style="background-color:#FFFFFF;"|Utilisation des mesures avec opérateurs de comparaison
| style="background-color:#FFFFFF;" |Utilisation des mesures avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|Changer la valeur par SET VAL. Utile pour simulation
| style="background-color:#FFFFFF;" |Changer la valeur par SET VAL. Utile pour simulation (<span style="color: red">*</span>)
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|'''X-200 PH'''
|'''X-200 PH'''
Ligne 613 : Ligne 663 :
|ANA
|ANA
|Utilisation des mesures avec opérateurs de comparaison
|Utilisation des mesures avec opérateurs de comparaison
|Changer la valeur par SET VAL. Utile pour simulation
|Changer la valeur par SET VAL. Utile pour simulation (<span style="color: red">*</span>)
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;"|'''X-010V'''
| style="background-color:#FFFFFF;" |'''X-010V'''
|style="background-color:#FFFFFF;"|Entrées consignes
| style="background-color:#FFFFFF;" |Entrées consignes
|style="background-color:#FFFFFF;"|ANA
| style="background-color:#FFFFFF;" |ANA
|style="background-color:#FFFFFF;"|Utilisation des valeurs avec opérateurs de comparaison
| style="background-color:#FFFFFF;" |Utilisation des valeurs avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|Changer la valeur par SET VAL. Utile pour simulation
| style="background-color:#FFFFFF;" |Changer la valeur par SET VAL. Utile pour simulation (<span style="color: red">*</span>)
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |
|style="background-color:#FFFFFF;"|Sorties voltage
| style="background-color:#FFFFFF;" |Sorties voltage
|style="background-color:#FFFFFF;"|ANA
| style="background-color:#FFFFFF;" |ANA
|style="background-color:#FFFFFF;"|Utilisation des mesures avec opérateurs de comparaison
| style="background-color:#FFFFFF;" |Utilisation des mesures avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|Changer la valeur par SET VAL. Utile pour simulation
| style="background-color:#FFFFFF;" |Changer la valeur par SET VAL. Utile pour simulation (<span style="color: red">*</span>)
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |
|style="background-color:#FFFFFF;"|Entrées On/Off
| style="background-color:#FFFFFF;" |Entrées On/Off
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Détection du changement d'état d'une entrée
| style="background-color:#FFFFFF;" |Détection du changement d'état d'une entrée
|style="background-color:#FFFFFF;"|Changer l'état d'une IO pour piloter les 4 canaux
| style="background-color:#FFFFFF;" |Changer l'état d'une IO pour piloter les 4 canaux
|-
|-
|'''X-Dimmer'''
|'''X-Dimmer'''
Ligne 649 : Ligne 702 :
|ANA
|ANA
|Utilisation des valeurs avec opérateurs de comparaison
|Utilisation des valeurs avec opérateurs de comparaison
|Changer la valeur par SET VAL.
|Changer la valeur par SET VAL.
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|
|
Ligne 655 : Ligne 709 :
|ANA
|ANA
|Utilisation des valeurs avec opérateurs de comparaison
|Utilisation des valeurs avec opérateurs de comparaison
|Changer la valeur par SET VAL.
|Changer la valeur par SET VAL.
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|
|
Ligne 661 : Ligne 716 :
|ANA
|ANA
|Utilisation des valeurs avec opérateurs de comparaison
|Utilisation des valeurs avec opérateurs de comparaison
|Changer la valeur par SET VAL.
|Changer la valeur par SET VAL.
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;"|'''X-4FP'''
| style="background-color:#FFFFFF;" |'''X-4FP'''
|style="background-color:#FFFFFF;"|Entrées 6 ordres sur zones
| style="background-color:#FFFFFF;" |Entrées 6 ordres sur zones
|style="background-color:#FFFFFF;"|IO
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|Détection du changement d'état d'une entrée
| style="background-color:#FFFFFF;" |Détection du changement d'état d'une entrée
|style="background-color:#FFFFFF;"|Changer l'état d'une IO pour envoyer l'ordre correspondant  
| style="background-color:#FFFFFF;" |Changer l'état d'une IO pour envoyer l'ordre correspondant  
|-
|-
|'''X-PWM'''
|'''X-PWM'''
Ligne 674 : Ligne 730 :
|Utilisation des valeurs avec opérateurs de comparaison
|Utilisation des valeurs avec opérateurs de comparaison
|Changer la valeur par SET VAL pour faire varier la sortie correspondante
|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.
|-
|-
|
|
Ligne 679 : Ligne 737 :
|ANA
|ANA
|Utilisation des valeurs avec opérateurs de comparaison
|Utilisation des valeurs avec opérateurs de comparaison
|Changer la valeur par SET VAL.
|Changer la valeur par SET VAL.
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|style="background-color:#FFFFFF;|'''X-GSM'''
| style="background-color:#FFFFFF;" |'''X-GSM'''
|style="background-color:#FFFFFF;"|RSSI
| style="background-color:#FFFFFF;" |RSSI (Received Signal Strength Indicator)
|style="background-color:#FFFFFF;"|ANA
| style="background-color:#FFFFFF;" |ANA
|style="background-color:#FFFFFF;"|Utilisation de la valeur avec opérateur de comparaison
| style="background-color:#FFFFFF;" |Utilisation de la valeur avec opérateur de comparaison
|style="background-color:#FFFFFF;"| -
| style="background-color:#FFFFFF;" | -
|-
|-
|'''X-Display'''
|'''X-Display'''
Ligne 703 : Ligne 762 :
|ANA
|ANA
|Utilisation de la valeur avec opérateur de comparaison
|Utilisation de la valeur avec opérateur de comparaison
|Changer la valeur par SET VAL pour modifier l'affichage.
|Changer la valeur par SET VAL.
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
| style="background-color:#FFFFFF;" |'''X-POOL (Relay State)'''
| style="background-color:#FFFFFF;" |'''X-POOL (Relay State)'''
Ligne 709 : Ligne 769 :
| style="background-color:#FFFFFF;" |IO
| style="background-color:#FFFFFF;" |IO
| style="background-color:#FFFFFF;" |Détection du changement d'état de la sortie relais
| style="background-color:#FFFFFF;" |Détection du changement d'état de la sortie relais
| style="background-color:#FFFFFF;" |Changer l'état du relais.
| style="background-color:#FFFFFF;" | (<span style="color: red">**</span>)
|-
|-
|'''X-POOL (Input)'''
|'''X-POOL (Input)'''
Ligne 715 : Ligne 775 :
|IO
|IO
|Détection du changement d'état de l'entrée
|Détection du changement d'état de l'entrée
|Changer l'état pour simulation.
| (<span style="color: red">**</span>)
|-
|-
| style="background-color:#FFFFFF;" |'''X-POOL (Analog)'''
| style="background-color:#FFFFFF;" |'''X-POOL (Analog)'''
Ligne 721 : Ligne 781 :
| style="background-color:#FFFFFF;" |ANA
| style="background-color:#FFFFFF;" |ANA
| style="background-color:#FFFFFF;" |Utilisation des valeurs avec opérateurs de comparaison
| style="background-color:#FFFFFF;" |Utilisation des valeurs avec opérateurs de comparaison
| style="background-color:#FFFFFF;" |Changer la valeur par SET VAL. Utile pour simulation
| style="background-color:#FFFFFF;" |Changer la valeur par SET VAL. Utile pour simulation (<span style="color: red">*</span>)
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
 
|-
|-
|'''X-POOL (Notif)'''
|'''X-POOL (Notif)'''
Ligne 727 : Ligne 789 :
|IO
|IO
|Détection du changement d'état de la sortie notification
|Détection du changement d'état de la sortie notification
|Changer l'état pour simulation.
| (<span style="color: red">**</span>)
|-
|-
| style="background-color:#FFFFFF;" |'''SWITCH-EBX'''
| style="background-color:#FFFFFF;" |'''SWITCH-EBX'''
| style="background-color:#FFFFFF;" | -
| style="background-color:#FFFFFF;" | -  
| style="background-color:#FFFFFF;" |
| style="background-color:#FFFFFF;" |
| style="background-color:#FFFFFF;" | -
| style="background-color:#FFFFFF;" | -  
| style="background-color:#FFFFFF;" | -
| style="background-color:#FFFFFF;" | -  
|-
|-
|'''X-POOL (Relay Cmd)'''
|'''X-POOL (Relay Cmd)'''
Ligne 748 : Ligne 810 :
!Type
!Type
!Utilisation en événement
!Utilisation en événement
!actions possibles
!Utilisation en Résultat
!Utilisation en Résultat
|-
|-
|'''Fonction'''
|'''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.
|-
|style="background-color:#FFFFFF;"|'''Push'''
|style="background-color:#FFFFFF;"|On/Off
|style="background-color:#FFFFFF;"|IO
|style="background-color:#FFFFFF;"|Détection du changement d'état de l'entrée On/Off
|ON/ON-OFF/OFF/SWITCH
|style="background-color:#FFFFFF;"|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
|-
| style="background-color:#FFFFFF;" |'''Mail'''
| style="background-color:#FFFFFF;" |On/Off
| style="background-color:#FFFFFF;" |IO
| style="background-color:#FFFFFF;" |Détection du changement d'état de l'entrée On/Off
|ON/ON-OFF/OFF/SWITCH
| style="background-color:#FFFFFF;" |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
|
| -
|-
| style="background-color:#FFFFFF;" |'''Délai'''
| style="background-color:#FFFFFF;" |Countdown
| style="background-color:#FFFFFF;" |ANA
| style="background-color:#FFFFFF;" |Utilisation de la valeur avec opérateurs de comparaison
|SET VAL
| style="background-color:#FFFFFF;" |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.
|-
|-
|style="background-color:#FFFFFF;"|'''Push'''
|'''Tempo.'''
|style="background-color:#FFFFFF;"|
|Countdown
|style="background-color:#FFFFFF;"|
|ANA
|style="background-color:#FFFFFF;"|
|Utilisation de la valeur avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|
|SET VAL
|Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|'''Preset'''
|
|
|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.
|-
|-
|style="background-color:#FFFFFF;"|'''Mail'''
| style="background-color:#FFFFFF;" |'''Chrono.'''
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |Countdown
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |ANA
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |Utilisation de la valeur avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|
|SET VAL
| style="background-color:#FFFFFF;" |Changer la valeur par SET VAL.
Lire sa valeur pour l'affecter à une autre ressource analogique grâce à la commande SET VAL.
|-
|-
|'''Calendrier'''
|
|
|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
|-
|-
|style="background-color:#FFFFFF;"|'''Délai'''
|
|style="background-color:#FFFFFF;"|
|Output
|style="background-color:#FFFFFF;"|
|IO
|style="background-color:#FFFFFF;"|
|Détection du changement d'état de l'entrée Output
|style="background-color:#FFFFFF;"|
|ON/ON-OFF/OFF/SWITCH
|Modifier l'état à ON ou OFF
|-
|-
|'''Tempo.'''
|
|
|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.
|-
| style="background-color:#FFFFFF;" |'''Clignotant'''
| style="background-color:#FFFFFF;" |Countdown (TA)
| style="background-color:#FFFFFF;" |ANA
| style="background-color:#FFFFFF;" |Utilisation de la valeur avec opérateurs de comparaison
|SET VAL
| style="background-color:#FFFFFF;" |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.
|-
|-
|style="background-color:#FFFFFF;"|'''Chrono.'''
|
|style="background-color:#FFFFFF;"|
|Enable/RST
|style="background-color:#FFFFFF;"|
|IO
|style="background-color:#FFFFFF;"|
|Détection du changement d'état de l'entrée Enable
|style="background-color:#FFFFFF;"|
|ON/ON-OFF/OFF/SWITCH
|Modifier l'état pour activer ou désactiver ou réinitialiser l'objet
|-
|-
|'''Impulsion'''
|
|
|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.
|-
|-
|style="background-color:#FFFFFF;"|'''Clignotant'''
|
|style="background-color:#FFFFFF;"|
|Time(TB)
|style="background-color:#FFFFFF;"|
|ANA
|style="background-color:#FFFFFF;"|
|Utilisation de la valeur avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|
|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'''
|'''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.
|-
| style="background-color:#FFFFFF;" |'''Compteur'''
| style="background-color:#FFFFFF;" |Counter value
| style="background-color:#FFFFFF;" |ANA
| style="background-color:#FFFFFF;" |Utilisation de la valeur avec opérateurs de comparaison
|SET VAL
| style="background-color:#FFFFFF;" |
|-
|-
|style="background-color:#FFFFFF;"|'''Compteur'''
|
|style="background-color:#FFFFFF;"|
|Dec -
|style="background-color:#FFFFFF;"|
|IO
|style="background-color:#FFFFFF;"|
|Détection du changement d'état de l'entrée Start
|style="background-color:#FFFFFF;"|
|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 Publish'''
|
|
|
|
|
Ligne 832 : Ligne 1 165 :
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|-
|-
|'''MQTT All'''
|'''MQTT All'''
|
|
|
|
|
Ligne 841 : Ligne 1 176 :
|-
|-
|style="background-color:#FFFFFF;"|'''Thermostat'''
|style="background-color:#FFFFFF;"|'''Thermostat'''
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Comfort
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|IO
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Détection du changement d'état de l'entrée Start
|style="background-color:#FFFFFF;"|
|ON
|style="background-color:#FFFFFF;"|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
| -
| -
|-
|-
|'''Télérupteur'''
|
|
|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
| -
| -
|-
|-
|style="background-color:#FFFFFF;"|'''Monostable'''
|'''Télérupteur'''
|style="background-color:#FFFFFF;"|
|Input
|style="background-color:#FFFFFF;"|
|IO
|style="background-color:#FFFFFF;"|
|Détection du changement d'état de l'entrée
|style="background-color:#FFFFFF;"|
|ON/ON-OFF/SWITCH
|Modifier l'état à ON (impulsionnel) pour basculer la sortie
|-
|-
|'''Appui long'''
|
|
|Output
|IO
|Détection du changement d'état de l'entrée
|ON/ON-OFF/OFF/SWITCH
|Modifier l'état à ON ou OFF
|-
| style="background-color:#FFFFFF;" |'''Monostable'''
| style="background-color:#FFFFFF;" |Input
| style="background-color:#FFFFFF;" |IO
| style="background-color:#FFFFFF;" |Détection du changement d'état de l'entrée
|ON/ON-OFF/SWITCH
| style="background-color:#FFFFFF;" |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
|-
|-
|style="background-color:#FFFFFF;"|'''Double click'''
| style="background-color:#FFFFFF;" |'''Double click'''
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |Input
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |Détection du changement d'état de l'entrée
|style="background-color:#FFFFFF;"|
|ON/ON-OFF/SWITCH
| style="background-color:#FFFFFF;" |Modifier l'état à ON (impulsionnel) pour basculer la sortie en fonction du nombre de clicks sur temps imparti
|-
|-
|'''Bascule RS'''
|
|
|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
|-
|-
|style="background-color:#FFFFFF;"|'''Fader'''
|style="background-color:#FFFFFF;"|'''Fader'''
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Fade Time
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|ANA
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Utilisation de la valeur avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|
|SET VAL
|style="background-color:#FFFFFF;"|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.
|-
|-
|'''Ping Watchdog'''
|
|
|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
| -
| -
|-
|-
|style="background-color:#FFFFFF;"|'''Modbus lecture'''
|style="background-color:#FFFFFF;"|'''Modbus lecture'''
Ligne 892 : Ligne 1 363 :
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|-
|-
|'''Modbus écriture'''
|'''Modbus écriture'''
|
|
|
|
|
Ligne 901 : Ligne 1 374 :
|-
|-
|style="background-color:#FFFFFF;"|'''Planning TOR'''
|style="background-color:#FFFFFF;"|'''Planning TOR'''
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Enable
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|IO
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Détection du changement d'état de l'entrée
|style="background-color:#FFFFFF;"|
|ON/ON-OFF/OFF/SWITCH
|style="background-color:#FFFFFF;"|Modifier l'état à ON ou OFF
|-
|-
|'''Planning ANA'''
|
|
|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.
|-
| style="background-color:#FFFFFF;" |'''Parser JSON'''
| style="background-color:#FFFFFF;" | -
| style="background-color:#FFFFFF;" | -
| style="background-color:#FFFFFF;" | -
|
|
| style="background-color:#FFFFFF;" | -
|-
|-
|style="background-color:#FFFFFF;"|'''Parser JSON'''
|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|
|-
|
|
|
|
Ligne 934 : Ligne 1 425 :
|-
|-
|'''Virtual IO'''
|'''Virtual IO'''
|
|IO Virtuelle
|
|IO
|
|Détection du changement de l'état de la variable
|
|Modification de l'état de la variable
|-
|-
|style="background-color:#FFFFFF;"|'''Virtual Ana 8 à 32'''
|style="background-color:#FFFFFF;"|'''Virtual Ana 8 à 32'''
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Virtual Ana
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|ANA
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Utilisation des valeurs avec opérateurs de comparaison
|style="background-color:#FFFFFF;"|
|style="background-color:#FFFFFF;"|Changer la valeur par SET VAL
|}
|}


Ligne 980 : Ligne 1 471 :


==== Scénario ====
==== 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.
{| class="wikitable"
{| class="wikitable"
!Tuile
!Tuile
Ligne 988 : Ligne 1 480 :
|-
|-
|'''Scène'''
|'''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.
|-
|-
|style="background-color:#FFFFFF;"|'''Règle'''
| style="background-color:#FFFFFF;" |'''Règle'''
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |Entrée Enable de chaque règle existante
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |IO
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |Détection du changement d'état de l'entrée
|style="background-color:#FFFFFF;"|
| style="background-color:#FFFFFF;" |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 :
[[Fichier:Image règle resultat.png|sans_cadre|1027x1027px]]
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 ===
=== Vérification automatique ===
Différents messages d'erreurs retournés par la 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 :
{| class="wikitable"
{| class="wikitable"
|+
|+
Ligne 1 014 : Ligne 1 524 :
!Résolution
!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''
[[Fichier:Logique combinatoire-rule engine.png|sans_cadre|1139x1139px]]
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''
[[Fichier:Rule-engine combi ana-io.png|sans_cadre|1135x1135px]]
Pour plus de lecture, voici le lien vers le [https://forum.gce-electronics.com/t/regle-avec-parentheses-et-utilisation-de-la-variable-result/17893 post original]

Version actuelle datée du 15 janvier 2024 à 09:33

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