Différences entre les versions de « Principe de fonctionnement de l’IPX800V5 »

De GCE Electronics
Aller à la navigation Aller à la recherche
 
(14 versions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
   
   
{{Infobox IPX800
{{Infobox IPX800
  | titre        = V5 : principes de fonctionnement
  | titre        = Utilisation de IPX Browser
  | image        = LogiqueV5.png
  | image        = IPX Browser.png
  | famille      = IPX800 V5
  | famille      = IPX800 V5
  | date-create  = 29/12/2022
  | date-create  = 01/04/2024
  | date-update  =29/12/2022
  | date-update  =01/04/2024
  | auteur = @Michel94
  | auteur = @Michel94
}}
}}


== Introduction ==
== Introduction ==
Le fonctionnement de l’IPX800V5 repose sur 4 types d’éléments : les ressources, les variables, les liens, les règles.
Avant de consulter ce [[wiki]], veuillez lire le [[IPX800 V5|wiki]] consacré à l’IPX800V5.
 
Le fonctionnement de l’IPX800V5 repose sur 4 types d’éléments : les ressources, les variables, les Liens, les Règles.


== Les ressources ==
== Les ressources ==
Ligne 78 : Ligne 80 :
Pour les variables ''Analog'' et ''String'', un événement est généré à chaque détection d’une variation du contenu de la variable.  Ce mode de fonctionnement événementiel peut parfois générer des résultats semblant incohérents. A titre d’exemple, lorsque l’on créé une ressource objet comparateur, par défaut, les entrées InA et InB sont égales à 0. La formule de comparaison par défaut est inA == inB. Il serait logique que le résultat en sortie soit On puisque InA est égale à InB alors que le résultat affiché est Off. En fait le comparateur n’a pas été déclenché, n’ayant pas reçu d’événement puisque les valeurs entrées n’ont pas varié. Le résultat de la sortie reste donc à l’état Off.
Pour les variables ''Analog'' et ''String'', un événement est généré à chaque détection d’une variation du contenu de la variable.  Ce mode de fonctionnement événementiel peut parfois générer des résultats semblant incohérents. A titre d’exemple, lorsque l’on créé une ressource objet comparateur, par défaut, les entrées InA et InB sont égales à 0. La formule de comparaison par défaut est inA == inB. Il serait logique que le résultat en sortie soit On puisque InA est égale à InB alors que le résultat affiché est Off. En fait le comparateur n’a pas été déclenché, n’ayant pas reçu d’événement puisque les valeurs entrées n’ont pas varié. Le résultat de la sortie reste donc à l’état Off.


== Les Liens ==
== Liens, Règles, Scènes ==
[[Fichier:Objet.png|gauche|sans_cadre|300x300px]]
Les Liens permettent de programmer des actions simples pré-formatées, les Règles (qui peuvent être regroupées dans une Scène) des actions plus complexes.
Un lien assure la mise en relation entre une variable de sortie d’une ressource ou d’une règle et une variable d’entrée d’une ressource, d’une scène ou d’une règle.
 
Il existe deux types de lien : les liens ''I0'' réservés exclusivement aux variables ''I0'' et les liens ''Analog'' réservés exclusivement aux variables ''Analog.'' Il n’existe pas de lien S.
 
Pour éviter la confusion entre les entrées et sorties des variables et les entrées et sorties des liens, dans ce document on nommera ''source'' (src), la partie du lien prenant en charge l’information et ''destination'' (dst), la partie du lien restituant l’information.
La mise en relation de deux variables par le lien est conditionnée à une variation d’état détectée sur la ou les sources du lien.
 
=== Liens I0 ===
Un lien ''I0'' est associé à une action choisie parmi les deux suivantes :
 
[[Fichier:Link.png|sans_cadre|55x55px]]  Action Link


* Si la source détecte un événement ON, le lien restitue à sa destination, un événement ON.
Pour ces 3 éléments, reportez-vous au [[IPX800 V5|wiki]] consacré à l'IPX V5.
* Si la source détecte un événement OFF, le lien restitue à sa destination, un événement OFF.


[[Fichier:Not.png|sans_cadre|55x55px]] Action Not
== Le partage de variable ==
En plus des liens et des scènes, il existe une autre possibilité pour lier des ressources entres elles : le partage de variable.
  Rappel : Une variable appartient obligatoirement à une ressource, à une scène ou à une règle. Dans le cas d’une variable virtuelle, la variable est considérée comme étant sa propre ressource.
Certaines ressources autorisent la prise en compte du contenu de variable appartenant à d’autres ressources par le biais de deux méthodes : sélection d’une variable externe à la ressource lors du paramétrage de celle-ci ou utilisation d’une étiquette.


* Si la source détecte un événement ON, le lien restitue à sa destination, un événement OFF.
=== Variable externe à la ressource ===
* Si la source détecte un événement OFF, le lien restitue à sa destination, un événement ON.
L'objet ''Parser JSON'' analyse une chaine de caractères dont il extrait des données correspondant à des clés identifiées, données qu'il stocke dans une ou des variables adaptées.  


=== Liens Analog ===
Ici, par exemple, la variable ''[Shelly Lampe Sal]Response'' d'un Push est utilisée comme variable d’entrée par le Parser JSON Test qui extrait de la clé ''ison''  une variable de type ''IO'' et la clé ''timer_remaining'' une variable Analog<sup>32</sup>
Un lien ''Analog'' est associé à une action [[Fichier:Setval.png|sans_cadre|55x55px]] SetVal : à chaque variation de la source du lien (événement), la valeur de celle-ci est reproduite à la destination du lien.


=== Particularités et contraintes : ===
[[Fichier:ParsonJSON.png|sans_cadre]]
[[Fichier:Connecteurs.png|sans_cadre|463x463px]]
* Chaque lien est contenu dans un connecteur.
* Une extrémité source d’un lien ne peut être connectée qu’à une variable de sortie.
* Une extrémité destination d’un lien ne peut être connectée qu’à une variable d’entrée.
* Un connecteur peut contenir jusqu’à 8 liens dans une des deux configurations suivantes :


[[Fichier:1N.png|sans_cadre|40x40px]]  Une seule source et une ou plusieurs destinations (configuration 1 vers n). Pour les liens I0, chaque destination peut être associée à une action particulière.
La relation entre les deux ressources est équivalente à un lien : la ressource propriétaire de la variable est la source, la ressource ayant intégrée la variable est la destination. Dans cette ressource destination, la variable externe est considérée comme une variable d’entrée, quel que soit son rôle dans la ressource propriétaire.


[[Fichier:N1.png|sans_cadre|40x40px]]  Plusieurs sources et une seule destination (configuration n vers1). Pour les liens I0, chaque source est associée à une action particulière.
=== Etiquettes ===
Dans une chaine de caractères, il est possible d’insérer une étiquette représentant le contenu d’une variable. Une étiquette est constituée de l’identifiant de la variable entourées de deux caractères « $ ». A titre d’exemple, l’étiquette « $327687$ » affiche, après décodage, la valeur de la variable dont l’identifiant est 327687.


Pour exploiter une étiquette, la ressource doit pouvoir la décoder. Actuellement, seules quelques ressources peuvent décoder une étiquette : Mail, Push, Function... Avant que le décodage de l’étiquette ne soit réalisé, l’étiquette reste une simple succession de caractères représentant l’adresse de la variable qui ne varie pas. Pour cette raison, une variable représentée par son étiquette ne peut déclencher une ressource. Une modification a été apportée depuis la version 5.4.3 pour que, dans la ressource « Function », les étiquettes soient décodées régulièrement (si l’entrée x n’est pas utilisée) et puissent déclencher cette ressource.


Il est possible de désactiver une branche en lui affectant une action 0  [[Fichier:NoAction.png|sans_cadre|55x55px]] 
Les étiquettes peuvent être utilisées dans les variables string (strMailOn ou strMailOff des ressources Mail par exemple).
Une entrée ou sortie de ressource, de scène ou de règle ne peut appartenir qu’à un seul connecteur. Une variable virtuelle étant à la fois une variable d’entrée et une variable de sortie, elle peut appartenir à 2 connecteurs différents.
Du fait du fonctionnement événementiel des liens, dans le cas d’une configuration n vers 1, la valeur présente sur la destination du lien est dépendante uniquement de la source ayant eu la variation la plus récente. A noter que, pour les variables ''I0'' de type start ou réinit, celles-ci reprennent, après leurs activations, un état différent des variables sources qui les ont activées. Il est donc normal que, dans certains cas, les extrémités sources et destinations d’un lien aient des valeurs différentes.

Version actuelle datée du 28 mars 2024 à 11:13


Utilisation de IPX Browser

IPX Browser.png
Nom Utilisation de IPX Browser
Famille IPX800 V5
Wiki créé le 01/04/2024
Wiki mis à jour le 01/04/2024
Auteur @Michel94

Introduction

Avant de consulter ce wiki, veuillez lire le wiki consacré à l’IPX800V5.

Le fonctionnement de l’IPX800V5 repose sur 4 types d’éléments : les ressources, les variables, les Liens, les Règles.

Les ressources

Ce sont des process indépendants qui assurent l’acquisition, le traitement ou la restitution de l’information. Elles sont accessibles par l’interface utilisateur Web IPX-800-V5 à la rubrique Links où elles sont classées en 5 catégories :

IPX800

Onglet IPX.png

interfaces d’entrées et de sorties natives de l’ipx800, commande de reboot, détection de présence secteur, fourniture de l’heure système de l’ipx800, informations sur le fonctionnement de l’Ipx800.

Extensions

Onglet extensions.png

interfaces d’entrées et de sorties des extensions de l’ipx800.

Objets

Onglet objets.png

ressources assurant un traitement de l’information (fonction, délai, compteur, tempo, comparateur...), un déclenchement d’actions (clignotant, calendrier, planning...), l’envoi de messages (push, mail), l’envoi et la réception de commandes via les protocoles ModBus ou MQTT...

Variables virtuelles

Onglet variables.png

elles sont décrites en détail à la rubrique variables.

Modules

Onglet modules.png

ressources de type plugin : météo, ipx800v4, Hue Light.

Une ressource communique au sein de l’IPX800V5 au moyen de variables. 
Des paramètres sont également disponibles pour préciser le mode de fonctionnement de la ressource.

Les variables

Les variables de l’IPX800V5 sont des espaces de stockage auxquels sont associés un identifiant, une capacité et une convention d’interprétation.

Les variables I0

Elles ont une capacité de 1 bit (booléen) dont la valeur indique 0 ou 1, vrai ou faux, on ou off.

Les variables Analog

Elles ont une capacité de 1 octet (ana8), 2 octets (ana16) ou 4 octets (ana32).

Elles peuvent être interprétées en mode RAW représentant un entier positif, ou en mode REAL représentant un nombre réel (positif ou négatif), entier ou décimal. Dans ce cas, le nombre de décimales peut être paramétré.

Les variables String

Elles peuvent contenir une chaine de caractères (string). Elles ont une capacité de 32 caractères (str32), 64 caractères (str64), 128 caractères (str128), 256 caractères (str256) ou 512 caractères (str512).

Une variable est accessible en mode écriture (écriture d’une information dans la variable) et en mode lecture (lecture de l’information stockée dans la variable).

Pour chaque type de variable, il y a deux catégories : les variables systèmes créées automatiquement par la V5 et les variables virtuelles créées par l'utilisateur.

  • Une variable système est associée à un élément parent qui peut être une ressource, une scène ou une règle. Elle permet à cet élément parent de communiquer avec l’environnement interne de l’IPX800V5. Une variable d’entrée permet à son élément parent d’acquérir de l’information. Cette information est lue par l’élément parent. Après traitement, l’élément parent restitue des informations en écrivant dans des variables de sortie.
  • Une variable virtuelle est une variable qui n’est liée à aucun élément parent. En fait elle est une ressource de stockage de l’information. Elle joue également le rôle de variable d’entrée et de variable de sortie.

Mode événementiel

Il est primordial d’avoir toujours à l’esprit le mode de fonctionnement événementiel lors de l’analyse du comportement de l’IPX-800-V5.

Ceci signifie que les process de l’IPX-800-v5 ne sont activés que lorsqu’une variation d’état, nommée événement survient sur les entités qu’ils surveillent. En absence de variation, ces process ne réagissent pas.

De ce fait, si aucun événement n'est appliqué sur les variables d’entrée d’une ressource, celle-ci n’assure aucun traitement. Il en est de même pour les interfaces d’entrées : si le signal d’entrée extérieur ne varie pas, aucun traitement n’est réalisé.

De la même manière, si, suite à un traitement interne, le process d’une ressource détermine que le résultat à écrire sur une variable de sortie n’a pas varié, aucune nouvelle inscription ne sera réalisée sur celle-ci.

Pour variables booléennes (variables I0), on nomme :

  • Événement ON : variation de l’état 0 (off) à l’état 1 (on).
  • Événement OFF : variation de l’état 1 (on) à l’état 0 (off).

Pour les variables Analog et String, un événement est généré à chaque détection d’une variation du contenu de la variable. Ce mode de fonctionnement événementiel peut parfois générer des résultats semblant incohérents. A titre d’exemple, lorsque l’on créé une ressource objet comparateur, par défaut, les entrées InA et InB sont égales à 0. La formule de comparaison par défaut est inA == inB. Il serait logique que le résultat en sortie soit On puisque InA est égale à InB alors que le résultat affiché est Off. En fait le comparateur n’a pas été déclenché, n’ayant pas reçu d’événement puisque les valeurs entrées n’ont pas varié. Le résultat de la sortie reste donc à l’état Off.

Liens, Règles, Scènes

Les Liens permettent de programmer des actions simples pré-formatées, les Règles (qui peuvent être regroupées dans une Scène) des actions plus complexes.

Pour ces 3 éléments, reportez-vous au wiki consacré à l'IPX V5.

Le partage de variable

En plus des liens et des scènes, il existe une autre possibilité pour lier des ressources entres elles : le partage de variable.

Rappel : Une variable appartient obligatoirement à une ressource, à une scène ou à une règle. Dans le cas d’une variable virtuelle, la variable est considérée comme étant sa propre ressource.

Certaines ressources autorisent la prise en compte du contenu de variable appartenant à d’autres ressources par le biais de deux méthodes : sélection d’une variable externe à la ressource lors du paramétrage de celle-ci ou utilisation d’une étiquette.

Variable externe à la ressource

L'objet Parser JSON analyse une chaine de caractères dont il extrait des données correspondant à des clés identifiées, données qu'il stocke dans une ou des variables adaptées.

Ici, par exemple, la variable [Shelly Lampe Sal]Response d'un Push est utilisée comme variable d’entrée par le Parser JSON Test qui extrait de la clé ison une variable de type IO et la clé timer_remaining une variable Analog32

ParsonJSON.png

La relation entre les deux ressources est équivalente à un lien : la ressource propriétaire de la variable est la source, la ressource ayant intégrée la variable est la destination. Dans cette ressource destination, la variable externe est considérée comme une variable d’entrée, quel que soit son rôle dans la ressource propriétaire.

Etiquettes

Dans une chaine de caractères, il est possible d’insérer une étiquette représentant le contenu d’une variable. Une étiquette est constituée de l’identifiant de la variable entourées de deux caractères « $ ». A titre d’exemple, l’étiquette « $327687$ » affiche, après décodage, la valeur de la variable dont l’identifiant est 327687.

Pour exploiter une étiquette, la ressource doit pouvoir la décoder. Actuellement, seules quelques ressources peuvent décoder une étiquette : Mail, Push, Function... Avant que le décodage de l’étiquette ne soit réalisé, l’étiquette reste une simple succession de caractères représentant l’adresse de la variable qui ne varie pas. Pour cette raison, une variable représentée par son étiquette ne peut déclencher une ressource. Une modification a été apportée depuis la version 5.4.3 pour que, dans la ressource « Function », les étiquettes soient décodées régulièrement (si l’entrée x n’est pas utilisée) et puissent déclencher cette ressource.

Les étiquettes peuvent être utilisées dans les variables string (strMailOn ou strMailOff des ressources Mail par exemple).