IHM V5 en détails : Les ressources et les liens
Niveau de mise à jour : 5.5.6 (09/11/2023)
changes à faire : MODULE PLAYER, récurrence "tous les ans" sur calendriers et plannings
Présentation
| |||
---|---|---|---|
Nom | IPX800 V5 | ||
Famille | IPX800 V5 | ||
Wiki créé le | 31/10/2023 | ||
Wiki mis à jour le | 03/09/2024 | ||
Auteur | @fgtoul |
Ce tutoriel va essayer de clarifier les différents paramètres liés aux objets de la V5 et de l'interface (Dashboards, Liveviews).
En premier lieu, il est important de préciser que la configuration de l'IPX doit commencer par la page "Système". A partir de cette page, vous pourrez configurer le réseau et les autorisations d'accès. Vous aurez également la possibilité de configurer les différents plugins, applications associées (comme Smart GCE) ou même encore accéder aux collections d'objets pour contrôler leur taux d'occupation en mémoire. Cette partie étant suffisamment expliquée dans la la documentation de l'IPX800 V5 ne sera pas reprise ici.
Je ne reprendrai pas non plus les parties principales de l'IHM, tels que les différents menus et sous-menus. Pour cela, consultez le wiki IHM V5 : premiers pas
Pour commencer à créer son propre environnement technique, il faut commencer par le menu LIENS (menu latéral gauche, bouton ).
NB : tous les exemples donnés ci-dessous ont été imaginés dans un but pédagogique. Les diagrammes et scénarios devront être adaptés pour une utilisation sur une installation réelle.
Les bases
Principe des liens
Vous pourrez associer vos extensions, créer vos commandes et actionneurs, configurer vos capteurs avec leur formule et définir les interactions.
Les liens permettent d'associer les ressources entre elles pour leur affecter une valeur ou une règle de fonctionnement.
Lorsqu'un objet est lié à la sortie d'un autre objet, il réagit à chaque changement d'état ou de valeur de ce dernier.
Cela permet de créer des automatismes simples avec votre IPX800 V5, sans avoir recours à la programmation de scénarii dans le Rule Engine.
Création d'un lien
Pour créer un lien entre 2 ressources, il suffit d'aller sur la page de l'une d'elles puis cliquer sur .
Ensuite, glisser les tuiles vers la ressource est un jeu d'enfant.
Exemple : imaginons qu'un interrupteur est branché sur l'entrée digitale n°7 de l'ipx800 V5. Par cet interrupteur nous voulons allumer et éteindre le spot de la piscine qui est branché sur le relais n°6 de l'ipx800.
Si la vidéo ne démarre pas, cliquez avec le bouton droit et choisissez "ouvrir dans un nouvel onglet"
Au dessus de la tuile que nous avons glissée sur la commande du relais, vous pouvez observer le mot "LINK".
Cela signifie que la commande du relais prend le même état que l'entrée digitale.
Remarque 1 : Cliquez sur le type de lien pour le modifier. Vous pourrez alors sélectionner le type qui convient: * Link est le type par défaut, ce type de lien permet d'appliquer le même état que celui de la ressource liée. * NOT permet d'appliquer l'état contraire. Si la ressource est ON, le lien NOT applique OFF à la ressource cible. * Ø lien désactivé. La ressource cible est ignorée et ne subit aucune modification d'état. * SETVAL : Lorsque vous liez des ressources analogiques, c'est le type SetVAL qui s'applique. Cela permet de transmettre la valeur d'une ressource analogique à une autre en temps réel.
Remarque 2 : Principe de fonctionnement des liens dans le cas de liaisons multiplese: a. plusieurs ressources liées en amont d’une ressource (que nous appellerons "cible"i: le principe de fonctionnement est que «uc’est le dernier qui parle qui a raison.i» b. plusieurs ressources liées en aval d’une ressource (que nous appellerons "source" : le changement d’état de la source affecte toutes les ressources cibles simultanément (en fonction du type de lien avec chacune d’elles).
Remarque importante : Pour chaque ressource liée, le système crée automatiquement un connecteur lorsque le bouton + est cliqué. Cliquez une première fois, le connecteur sera de type simple (), cliquez une seconde fois, le connecteur sera de type multiple ( ou ). Le nombre total de connecteurs est limité (voir page système/Mémoire). Pensez à les supprimer si vous ne les utilisez pas : cliquez sur l'icône du connecteur puis cliquez sur l'option "Supprimer connecteur".
Vérifions maintenant le bon fonctionnement du lien sur un dashboard.
Créons un Widget "Toggle" qui permettra de changer l'état de l'entrée digitale 7.
Créons ensuite un Widget "TEXTE ON/OFF" qui affichera l'état de la sortie relais 6.
Nous constatons que le changement d'état du relais est synchrone à chaque changement d'état de l'entrée digitale.
Si la vidéo ne démarre pas, cliquez avec le bouton droit et choisissez "ouvrir dans un nouvel onglet"
Représentation graphique des liens
Pour la suite du Wiki, je ne publierai plus de vidéo mais des diagrammes représentant les liens à créer.
Exemples :
Ce diagramme montre qu'il faut lier la sortie de l'objet 1 à l'entrée de l'objet 2 (glisser/déposer d'une tuile).
Ce diagramme montre que la valeur de la sortie de l'objet 1 sera affichée sur un dashboard dans un widget (sélection de la ressource dans la configuration du widget).
Ce diagramme montre comment la sortie de l'Objet 1 est utilisée par l'Objet 2 en tant que variable (inclusion dans une formule ou un champ texte de l'id de la ressource encadré par 2 symboles $).
Pour plus d'information sur cette utilisation de variables, je vous invite à lire le wiki suivant :
Utilisation des variables — GCE Electronics (gce-electronics.com)
Si nous reprenons l'exemple donné dans la première vidéo, nous pouvons dessiner ce diagramme :
L'entrée digitale 6 est liée à l'entrée "commande" du relais 7, l'état de ce dernier sera affiché dans un widget.
Remarque sur les diagrammes : Si le type de lien n'est pas précisé au dessus de la flèche, le lien est de type LINK (par défaut).
Remarque 2 : Tous les diagrammes ont été créés avec le logiciel libre DRAW.IO. Pour plus d'informations, veuillez vous reporter au tutoriel draw.io : logiciel gratuit pour schémas et diagrammes interactifs
La catégorie IPX800
Choisissez une catégorie de ressources puis cliquez sur leur nom pour les renommer à votre guise. Attention, saisissez des noms courts mais explicites. Leur utilisation dans les scénarios n'en sera que facilitée.
Par défaut, les ressources contiennent un type entre deux crochets.
Exemple avec un relais : . Le nom par défaut de la commande précise que cet objet est une ressource de l'IPX800 et que c'est l'IO de commande (cmd) du relais. En parallèle, le statut du relais est par défaut nommé de cette manière . Là encore le nom par défaut contient les informations essentielles qui sont [IPX] et state. Cela permet en effet de différencier ces 2 ressources rien qu'avec leur nom et de connaître exactement leur rôle.
Si vous renommez les ressources, adoptez des noms courts qui vous apporteront le même niveau d'information, cela vous facilitera la programmation par la suite.
Par exemple : IPX.pompe.cmd
Si vous renommez la commande d'un relais (relais cmd), pensez à renommer également la ressource qui représente son état (Etat relais). Idem pour les sorties à collecteur ouvert.
Remarque : après saisie du nom de la ressource, pensez à valider par entrée ou en cliquant le petit bouton OK qui s'affiche au bout du champ de saisie.
Citons tout de même un objet particulier dans cette catégorie : l'objet Redémarrage :
Le redémarrage de l'IPX800 V5 peut être planifié ou déclenché par des événements. Des objets comme le calendrier, le planning, le Ping Watchdog (et bien d'autres) peuvent être liés à l'entrée "Redémarrage". Cette fonctionnalité peut être utilisée pour résoudre des problèmes d'accès réseau, distant ou local.
Exemple : redémarrage quotidien à 8h00.
- Créez un objet calendrier et cliquez sur le bouton
- Sélectionnez la récurrence "Tous les jours",
- Renseignez l'heure de départ : 08:00:00
- Renseignez l'heure de fin : 08:00:01
- Liez l'objet "Redémarrage" à la sortie de l'objet Calendrier
Attention : une plage horaire trop longue pourrait provoquer plusieurs Redémarrages successifs.
La catégorie EXTENSIONS
Cette page permet d'ajouter les différentes extensions présentes dans votre installation (X-8R, X-24D, X-Display, ...).
Peu importe l'ordre de création, ce qui compte c'est l'exactitude de l'identifiant que vous devez saisir. C'est lui qui permettra le dialogue entre l'IPX800 V5 et l'extension (pour plus d'information, veuillez consulter la documentation de l'extension que vous devez ajouter).
Comme pour la catégorie "IPX800", vous pouvez renommer toutes les ressources entrées et sorties des extensions installées.
Utilisez des noms courts explicites comme vu plus haut, cela facilitera leur utilisation dans le moteur de scénario ou encore dans la configuration des widgets (que nous verrons plus bas).
La catégorie OBJETS
Les objets fonctions
Fonctionnement
L'objet fonction applique une formule de transfert à la valeur reçue sur son entrée X et transmet le résultat sur la sortie Résultat.
Lorsque l'entrée X est liée à une ressource analogique, l'objet réactualise le calcul et met la sortie Résultat à jour à chaque variation de l'entrée X.
Lorsque l'entrée X n'est liée à aucune ressource, le calcul est réévalué à intervalle de temps régulier.
Les ressources "Entrée X" et "Résultat" sont typées analogiques. Pensez à cliquer sur chacune d'elles pour définir le type de variable (RAW, REAL) et le nombre de décimales (précision).
Entrée X : vous pouvez saisir une valeur fixe sur cette entrée analogique. Le plus intéressant sera de lier une donnée analogique (capteur ou autre objet de la V5) afin d'avoir un calcul en temps réel en fonction des variations.
Résultat : Le champ résultat se met à jour en temps réel.
Activer : l'objet Fonction réactualise son calcul uniquement si l'entrée "Activer" est ON. Cela permet dans certains cas de bloquer le calcul sur une valeur à un instant T en désactivant ce paramètre. Cette entrée peut être liée à un événement (un exemple sera donné plus bas avec l'étude de l'objet impulsion)
Le bouton permet la définition de l'entrée X (unité, décimales), ainsi que la sélection d'une formule prédéfinie dans le champ "Fonction de transfert".
Cela permet de définir le type de capteur qui est lié à l'entrée X.
Vous pouvez également sélectionner un type de formule personnalisée et saisir une formule quelconque (cela permet l'installation de capteurs DIY).
Vous pouvez utiliser des parenthèses et des opérateurs simples comme la multiplication, l'addition, soustraction ou la division.
Vous pouvez également saisir des noms de variables. Pour plus d'information, veuillez consulter ce wiki : Utilisation des variables — GCE Electronics (gce-electronics.com)
Exemple d'utilisation
Une sonde de type TC-100 est installée dans le salon pour mesurer la température. Nous souhaitons afficher cette température sur le dashboard.
- Connectez la sonde sur une entrée analogique de votre IPX800, conformément aux préconisations du fabricant.
- Rendez-vous sur la page Liens, sélectionnez la catégorie IPX800 puis la sous-catégorie "Entrée Analog."
- Renommez l'entrée.
- Ouvrez la catégorie OBJETS puis créez un nouvel objet FONCTION
- Passez en édition des liens puis liez l'entrée analogique sur l'entrée X de l'objet Fonction
- Éditez l'objet Fonction et sélectionnez le type de capteur dans la liste (Temp-TC100 dans notre exemple). La formule de transfert de la TC-100 sera automatiquement mise en place.
- Allez sur votre Dashboard en cliquant sur le bouton puis créez un widget "Afficheur Analogique", sélectionnez la sortie Résultat de la fonction en tant que source de données.
Les objets Push
Principe
L'objet Push permet à l'Ipx800 de communiquer avec d'autres appareils (ipx800, serveur, box domotique, ...), soit pour envoyer une instruction ou un message, soit pour récupérer des données.
Fonctionnement
- Paramètres généraux (connexion au serveur cible)
- ON/OFF : Cette entrée de type IO (entrée digitale) provoque l'envoi d'un message, dépendant de sa valeur ON ou OFF, à chaque changement d'état.
- NOM : nom du push. Ce nom sera utilisable dans le moteur de scénario et les dashboards.
- Méthode : GET, POST, PUT, DELETE. La méthode dépend de la destination du Push et du type de données à envoyer. La réponse du serveur peut être sous forme de fichier json par exemple.
- Adresse : renseignez ici l'adresse IP du serveur ou périphérique de destination.
- Port : renseignez le port d'écoute du serveur ou périphérique de destination
- Auth.mode : renseignez le mode d'authentification requis par le serveur de destination.
- TLS : activez ce paramètre si l'url est de type HTTPS. Désactivez pour une requête HTTP.
- Minimise : permet dans certains cas de compresser la réponse du serveur.
- Définition du message à envoyer si l'entrée ON/OFF est ON
- Requête ON : pensez à l'activer si vous souhaitez que le Push envoie un message lorsque son entrée passe à l'état ON.
- URI : partie de l'url qui vient juste derrière l'adresse ip et le port. Commencez sa saisie par une barre oblique. Exemple : l'URI de http://IPX800_V4/api/xdevices.json?key=apikey&SetVA01=65535 est /api/xdevices.json?key=apikey&SetVA01=65535
- Body : ce paramètre est utile pour les requêtes PUT par exemple. Le body sera construit en JSON.
- Définition du message à envoyer si l'entrée ON/OFF est OFF
Les paramètres sont identiques à ceux du message ON. Activez la requête OFF pour y avoir accès et si vous souhaitez que l'ipx émette un message lorsque l'entrée passe à l'état OFF.
Remarque : Vous pouvez inclure des variables dans le corps des messages ON et OFF. L'ipx800 V5 remplacera alors chaque variable par la valeur de la ressource identifiée. Pour plus d'information, veuillez vous rapporter à ce wiki: Utilisation des variables — GCE Electronics (gce-electronics.com)
Exemples d'utilisation
Push vers IPX800 V3
Pour communiquer avec l'IPX800 V3, nous devons envoyer une requête HTTP API .
Veuillez consulter la documentation de cette API pour plus d'information.
L'IPX800 V3 peut répondre à des requêtes GET.
Dans le cas où vous avez protégé votre IPX par un Login, activez l'authentification BASIC et renseignez les champs Utilisateur et Mot de passe.
Si l'IPX800 V3 n'est pas protégée par mot de passe, laissez NONE dans le champ Auth.mode.
Dans tous les cas, il faudra renseigner l'adresse IP de votre IPX800 V3 ainsi que le port Http.
Exemple : activer/désactiver le relais n°1 sur une v3 :
La requête pour activer un relais sans mode impulsionnel sur l'ipx800 V3 est http://IPX800_V3/preset.htm?setX=1 où X est le numéro de la sortie de 1 à 32.
Pour désactiver le relais, la requête est http://IPX800_V3/preset.htm?setX=0
Créons un nouvel objet PUSH et configurons le comme suit :
l'URI ON est /preset.htm?set1=1
l'URI OFF est /preset.htm?set1=0
Dans la capture ci-dessous, l'ipx800 est protégée par un login.
Sauvegardez.
Vous pouvez tester votre configuration en cliquant sur le bouton de test situé au dessus.
Si vous vous connectez sur l'IPX800 V3, vous verrez le basculement du Relais 1.
Pour lancer les requêtes automatiquement en fonction de l'état d'une ressource, liez cette dernière à l'entrée ON/OFF de l'objet Push.
Par exemple, nous voulons que le relais de notre IPX800 V3 soit piloté par l'entrée opto-isolée n°1 d'une extension X-8D (cette dernière doit être préalablement ajoutée dans l'onglet EXTENSIONS)
Push vers IPX800 V4
La trappe d'accès au vide sanitaire devrait normalement être toujours fermée. Un capteur d'ouverture est connecté à l'entrée digitale 1 de l'IPX800 v5.
Nous souhaitons être averti par SMS à chaque ouverture. Pour cela, nous envoyons un Push vers une IPX800 V4 équipée de l'extension X-GSM V1.
La commande API V4 est SetSMS=Numtél:MonMessage. Pour plus d'informations, consultez la documentation de l'API V4.
- Connectez le capteur sur l'entrée digitale de votre IPX800 V5, conformément aux préconisations du fabricant.
- Rendez-vous sur la page Liens, sélectionnez la catégorie IPX800 puis la sous-catégorie "Entrée Digitale."
- Renommez l'entrée.
- Ouvrez la page OBJETS, créez un nouvel objet PUSH
Rappel : si l'ipx800 est protégée par une clé Api (ApiKey), vous devez ajuster l'URI comme suit : /api/xdevices.json?key=monApiKey&SetSMS=0601020304:Trappe ouverte
- Passez en édition de liens, liez l'entrée digitale à l'entrée ON/OFF du PUSH.
Push vers IPX800 V5
L'outil indispensable pour construire des requêtes permettant de piloter les ressources d'une IPX800 V5 est disponible en téléchargement sur le site officiel GCE.
Il s'agit de API DECK, inclus dans l'archive téléchargeable, avec le Firmware.
L'IPX800 V5 est capable de répondre à des requêtes de type GET, PUT, POST, DEL.
Pour plus d'informations sur l'API Rest, veuillez consulter sa documentation en ligne.
Remarque : L'ipx800 V5 ne peut pas envoyer de requêtes sur sa propre adresse IP locale. Pour contourner cela, il faudra créer une redirection de port sur votre Box internet et envoyer la requête sur l'adresse publique de l'IPX800 V5 (suivie du port externe).
Exemple 1 :
Nous souhaitons activer le relais 3 sur une autre IPX800 V5 à chaque changement d'état de l'entrée digitale n°7.
Sur l'outil API DECK, renseignez l'adresse IP de l'ipx800 V5 cible, ainsi que la clé API que vous aurez préalablement créée (page SYSTÈME).
Sélectionnez le groupe IO dans la colonne de gauche, puis cliquez l'IO qui correspond à la commande du relais 3 (nommé [IPX] Relay 3 cmd par défaut).
Dans mon exemple, c'est l'IO nommée "RLY vanne.remp cmd"
Cliquez sur le bouton ON/OFF pour voir les requêtes correspondantes.
Dans les logs, vous pourrez observer le corps de la requête {"toggle":true} générée par l'outil.
Cette commande "toggle" se contente de modifier l'état de l'IO, sans connaître l'état final. cette commande ne convient pas à notre besoin.
En outre, dans la documentation en ligne de l'API Rest, vous pouvez lire qu'il est possible de lancer des commandes du type {"on":true} ou encore {"on":false}
Vous pouvez essayer ces commandes dans le panneau Request return :
Modifiez le json puis cliquez sur le bouton Send (laissez seulement l'id et la commande)
Vous verrez votre requête apparaître dans la log en dessous, il suffit alors de la reproduire dans les paramètres du PUSH.
Créons un objet PUSH et configurons le avec l'URL générée précédemment :
Méthode : PUT
Adresse : 192.168.0.50 / Port : 80
Auth mode : NONE
TLS : non
Minimise : non
URI (requête On) : /api/core/io/65538?ApiKey=xxxxxxxxxxxxxxx
Body : {"on":true} (pas besoin de mettre l'ID, il est renseigné dans l'URI)
URI (requête Off) : /api/core/io/65538?ApiKey=xxxxxxxxxxxxxxx
Body : {"on":false}
Sauvegardez et testez avec le bouton placé au dessus de l'objet.
Créez un lien entre l'entrée digitale 7 et l'entrée ON/OFF du Push
Push vers Jeedom
Exemple : Nous souhaitons historiser l'état de l'entrée digitale 1 dans Jeedom.
Sur Jeedom, installez le plugin Virtuel et créez une donnée booléenne.
Pour plus d'information, veuillez consulter le tutoriel Jeedom : Data-Logger pour IPX800
Relevez l'URL du plugin affichée par Jeedom. Elle vous servira à configurer le Push.
Remplacez #cmd_id# par l'id de la donnée crée dans Jeedom, puis remplacez #value# par l'id de l'IO (encadré par 2 symboles $)
Pour notre exemple j'utilise la donnée 419 du plugin Virtuel de Jeedom et l'ID de l'entrée digitale n°1 (65552) de l'ipx800 V5 sous forme de variable.
L'URI devient alors :
/core/api/jeeApi.php?plugin=virtual&type=event&apikey=PkF5fN49xxxxxxxxxxxxxxxxxxxxxxxx1PVL3mBJaels2&id=419&value=$65552$
Renseignez cette URI pour la requête ON et pour la requête OFF.
Créons maintenant le lien avec l'entrée digitale n°1 pour provoquer l'envoi de son état à chacun de ses changements.
L'objet Bascule RS
La bascule RS pilote sa sortie en fonction de ses deux entrées (Set et Réinit). Lorsque l'entrée Set est activée, la sortie est activée, et lorsque l'entrée Réinit est activée, la sortie est remise à l'état Off.
Les entrées sont en mode impulsionnel.
Cet objet ne possède pas de paramètre spécifique autre que son nom.
L'objet Comparateur
Principe
Cet objet permet de comparer 2 valeurs analogiques A et B.
Différents opérateurs sont disponibles, la sortie s'activera si la comparaison est vraie, sinon elle sera off.
Fonctionnement
Analog A : entrée analogique de la première valeur à comparer.
Analog B : entrée analogique de la seconde valeur à comparer.
Sur ces 2 entrées analogiques, Il est possible de saisir une valeur fixe ou lier une autre ressource analogique pour avoir une comparaison dynamique.
Le bouton permet la configuration des paramètres.
Pour régler le format de l'entrée analogique A, cliquez sur le bouton de droite pour étendre le cadre.
Précisez le format RAW ou Real pour lequel vous préciserez le nombre de décimales.
Réglez le format de l'entrée analogique B.
L'opérateur définit la comparaison.
Exemple d'utilisation
Un ouvre-fenêtre électrique est installé sur la lucarne de la serre. Il est piloté par le relais 5 de l'IPX800.
Si le relais est ouvert, la lucarne est fermée. Si le relais se ferme, la lucarne s'ouvre.
Nous souhaitons que la lucarne s'ouvre automatiquement lorsque la température lue par un X-THL dépasse 28°C et se referme en dessous de 27°C
Nous souhaitons pouvoir régler les seuils de température pour l'ouverture et la fermeture de la lucarne.
- Créez 2 variables analogiques de type An16. Configurons les toutes 2 à 1 décimale.
- Créez un widget de type Curseur (slider) pour chacune d'elle afin de régler les seuils à partir du dashboard
Bien sûr, ce sera à vous de veiller à ce que la consigne haute soit supérieure à la consigne basse lorsque vous manipulerez les widgets.
- Créez un comparateur pour le franchissement du seuil bas.
- Liez notre analogique virtuelle "ANA16 seuil fermeture lucarne" sur l'entrée Analog A du comparateur.
- Liez la sortie "Température" du X-THL à l'entrée B.
- Sélectionnez l'opérateur A > B
- Créez un comparateur pour le franchissement du seuil haut.
- Liez notre analogique virtuelle "ANA16 seuil fermeture lucarne" sur l'entrée Analog A du comparateur.
- Liez la sortie "Température" du X-THL à l'entrée B.
- Sélectionnez l'opérateur A < B
- Créez un objet de type "Bascule RS", nommez la "RS commande lucarne" (La sortie de la bascule RS passe à l'état ON lorsque son entrée Set passe ON et repasse OFF lorsque l'entrée Reset passe ON.)
- Liez la sortie du comparateur "Fermeture Lucarne" à l'entrée Reset de la Bascule RS
- Liez la sortie du comparateur "Ouverture Lucarne" à l'entrée Set de la Bascule RS
Remarque : en éloignant les consignes d'ouverture et de fermeture, nous créons une hystérésis qui évite que la lucarne ne s'ouvre et se referme trop souvent lorsque la température est proche des consignes.
Les objets Presets
Principe
Le rôle de l'objet preset est de transformer une valeur booléenne en valeur analogique (consigne).
Fonctionnement
ON/OFF : donnée digitale (booléenne) à transformer.
Le bouton permet de définir le type de donnée analogique en sortie et la précision décimale.
Unité : permet de définir l'unité de la consigne. Pour le moment, seules REAL et RAW sont prises en compte.
Mode X-Dimmer : si activé, le preset modifie progressivement la sortie consigne en partant de l'ancienne valeur jusqu'à la nouvelle, à la manière d'un variateur.
Vitesse de transition : durée en secondes de la transition entre les 2 valeurs de consigne.
Valeur ON : valeur entre 0 et 255 qui est appliquée à la consigne lorsque l'entrée du Preset passe à l'état ON.
Valeur OFF : valeur entre 0 et 255 qui est appliquée à la consigne lorsque l'entrée du Preset passe à l'état OFF.
Exemples d'utilisation
Exemple 1
Un X-THL installé dans la salle de bain permet la mesure du taux d'humidité dans l'air. Nous possédons une VMC à vitesse variable (0-10V).
Pour la piloter, nous avons installé une X-010V dans le tableau.
Nous voulons que la VMC soit passée automatiquement en vitesse maximale lorsque l'hygrométrie dépasse un seuil défini (80%) et repasse à mi-vitesse en dessous de 78%.
Nous voulons pouvoir ajuster ces seuils à tout moment via le dashboard.
- Créez une variable analogique de type ANA16 et nommez la "Seuil haut VMC", laissez sa précision à 0 décimale.
- Créez un widget de type curseur (slider) sur votre dashboard et sélectionnez votre variable en tant que source de données.
- Créez une variable analogique de type ANA16 et nommez la "Seuil bas VMC", laissez sa précision à 0 décimale et rattachez la à un autre widget de type Curseur.
- Créez un comparateur "Seuil bas VMC", liez la sortie "Humidité" du X-THL à son entrée A. Liez la variable "Seuil bas" à l'entrée B. Sélectionnez l'opérateur A > B
- Créez un comparateur "Seuil Haut VMC", liez la sortie "Humidité" du X-THL à son entrée A. Liez la variable "Seuil bas" à l'entrée B. Sélectionnez l'opérateur A < B
- Créez une Bascule RS, liez la sortie du comparateur "Seuil haut" à l'entrée SETet la sortie du comparateur "Seuil bas" à l'entrée Reset.
- Créez un objet Preset, réglez la valeur ON à 100 et la valeur OFF à 50
- Liez la sortie Consigne du Preset à l'entrée du canal sur l'extensionX-010V
Remarque : en éloignant les seuils haut et bas de quelques points, nous créons une hystérésis qui évite le changement trop fréquent de vitesse lorsque l'hygrométrie est proche des consignes.
Exemple 2
Dans l’exemple ci-dessous, lorsque les 2 conditions sont vraies, l’objet fonction retourne un résultat = 1, ce qui permet de lancer l’action au travers du comparateur.
Remarque : cet exemple est repris du wiki concernant la logique combinatoire sur V5, avec mise en œuvre par liens.
Pour plus d'information, veuillez consulter le wiki Logique combinatoire par liens
L'objet Parser JSON
Le fonctionnement
L'objet Parser est étroitement lié aux objets PUSH, il est alors utilisé pour récupérer des valeurs à partir d'une réponse de type Json.
Il permet la récupération de 8 clés différentes dont la valeur de chacune sera alors disponible dans une variable. Cette variable sera du type défini dans le Parser et sera disponible sous un nom composé du nom de l'objet parser suivi de "outputx" (x correspond au rang de définition de la clé dans l'objet Parser. valeur de 1 à 8). Vous pouvez rattacher plusieurs Parser à une même source si vous souhaitez récupérer plus de 8 paramètres.
Exemple d'utilisation
L'API World Time API permet de récupérer les informations liées au fuseau horaire local. Nous allons l'utiliser pour récupérer le statut de l'heure d'été (vrai ou faux).
Créons un objet de type PUSH
ce Push enverra la requête http://worldtimeapi.org/api/timezone/Europe/Paris
Si vous testez ce Push, vous devriez obtenir une réponse formatée en JSON :
{ "utc_offset": "+02:00", "timezone": "Europe/Paris", "day_of_week": 1, "day_of_year": 246, "datetime": "2024-09-02T11:34:04.082337+02:00", "utc_datetime": "2024-09-02T09:34:04.082337+00:00", "unixtime": 1725269644, "raw_offset": 3600, "week_number": 36, "dst": true, "abbreviation": "CEST", "dst_offset": 3600, "dst_from": "2024-03-31T01:00:00+00:00", "dst_until": "2024-10-27T01:00:00+00:00" }
La clé "dst" a la valeur True le jour de la requête. Nous sommes bien en heure d'été au moment de la rédaction de ce paragraphe.
Nous souhaitons récupérer cette valeur dans une variable type IO afin de créer quelques scénarios ou encore réajuster les heures de lever et coucher du soleil fournis par le plugin "Météo" (au moment de l'écriture de ce paragraphe, le plugin Météo renvoie les heures de lever et coucher du soleil en temps UTC. Il convient alors d'appliquer l'heure d'été ou d'hiver).
Créons un objet de type Parser.
Dans le champ "contenu Str", renseignons la variable qui contient la réponse du push créé précédemment.
Renseignons ensuite la clé que nous souhaitons récupérer et le type de la variable de récupération. Ici, la donnée étant booléenne, nous utiliserons une variable de type IO.
Un objet preset fixera la valeur d’une variable analogique à 1 heure ou 2 heures (exprimées en secondes) selon l’état de l’IO (vrai, faux) puis une « Fonction » traitera alors l’information en ajoutant le nombre d'heures (exprimé en secondes) requis au timestamp du module Météo.
Voici un diagramme complet pour l'exemple.
Pour l'utilisation des variables dans la formule de l'objet "Fonction", veuillez vous reporter au wiki Utilisation des variables — GCE Electronics (gce-electronics.com)
Les objets Mails
Principe
Cet objet permet l'envoi de courriels à quatre destinataires maximum, selon l'état de son entrée ON/OFF
Fonctionnement
ON/OFF est une entrée digitale (booléenne) qui conditionne le type de courriel à envoyer.
Le bouton permet la sélection des destinataires du courriel.
Notez que vous pouvez au préalable créer vos contacts en cliquant sur le bouton répertoire ou bien ajouter vos contacts de manière dynamique en cliquant sur l'un des boutons .
Si vous ne l'avez pas déjà fait, vous devrez également configurer votre serveur SMTP en cliquant sur le bouton en haut de la page. Cette configuration est également accessible par la page système.
Subject : vous pouvez choisir l'objet du courriel qui sera transmis. Soit l'objet correspondra aux 32 premiers caractères du message, soit il prendra la valeur par défaut "My IPX800 V5". Actionnez le toggle pour sélectionner.
MAIL ON : activez le bouton pour activer l'envoi d'un courriel lorsque l'entrée ON/OFF passe à l'état ON.
MAIL OFF : activez le bouton pour activer l'envoi d'un courriel lorsque l'entrée ON/OFF passe à l'état OFF.
Pour les deux paramètres précédents, vous pouvez saisir le corps du message.
Remarque : Vous pouvez inclure des variables dans le corps du message. L'ipx800 V5 remplacera alors les variables par leur valeur avant l'envoi. Pour plus d'information, veuillez vous rapporter à ce wiki : Utilisation des variables — GCE Electronics (gce-electronics.com)
Exemple d'utilisation
Nous souhaitons être averti par mail lorsque le pH lu par la sonde connectée à l'extension X-200pH est trop élevé.
- Créez un comparateur avec l'opérateur A > B
- liez la sortie analogique PH à l'entrée A de ce comparateur.
- Fixez la valeur du seuil haut du pH dans la valeur de l'entrée B (le seuil est 7.6 dans l'exemple)
- Créez un objet Mail et liez son entrée ON/OFF à la sortie du Comparateur. Configurez le destinataire, le message ON et intégrez la variable pH avec l'id de la sortie pH du X-200 PH (262378 dans notre exemple)
Remarque : si vous ne recevez pas les mails émis, vérifiez dans les spams.
Les objets Calendriers
Principe
L'objet calendrier permet de définir des intervalles de dates ou d'heures pour exécuter certaines actions.
à l'état ON lorsque l'horloge de l'ipx800 indique une date ou un horaire compris dans l'intervalle de temps défini
Fonctionnement
Activer : permet d'activer ou désactiver le calendrier.
ÉTAT : sortie digitale qui passe à l'état ON lorsque l'horloge de l'ipx800 indique un horaire compris dans l'intervalle de temps défini.
Le bouton permet la saisie des paramètres.
NOM : nom du calendrier. respectez votre nomenclature.
Récurrence : Sélectionnez d'abord le type de récurrence souhaitée car il conditionnera la saisie des autres paramètres.
Date de début : date de début de la période. Cliquez sur le sélecteur de date pour sélectionner un jour.
Ce paramètre est à renseigner lorsque vous ne définissez pas de récurrence.
Heure de début : cliquez sur le sélecteur pour construire l'horaire à la seconde près.
Date de fin: date de fin de la période. Cliquez sur le sélecteur de date pour sélectionner un jour.
Ce paramètre est à renseigner lorsque vous ne définissez pas de récurrence.
Heure de fin: cliquez sur le sélecteur pour construire l'horaire à la seconde
Exemple :
- Récurrence tous les jours, heure début = 08:00:00, Heure de fin 08:30:00 Le calendrier sera à l'état ON tous les jours entre 08:00 et 08:30. Il sera OFF le reste du temps.
- Pas de récurrence. date début=01/01/2023, heure début=08:00:00, date fin=28/02/2023, heure fin=08:30:00 Le calendrier sera ON du 01/01/2023 à 08:00 jusqu'au 28/02/2023 à 08:30. Il sera OFF le reste du temps.
NB : Si vous sélectionnez la récurrence "Tous les ans", la période définie sera reconduite d'année en année.
Exemple d'utilisation
Nous souhaitons piloter le cumulus en heure creuse. Le cumulus est branché sur un contacteur. La bobine de ce dernier est pilotée par un relais sur X-8R.
- Créez une plage horaire, sélectionnez la récurrence "Tous les jours", fixez les horaires de début et de fin d'heure creuse (par exemple de 22h00 à 06h00)
- Liez la sortie de l'objet calendrier à l'entrée cmd du relais sur lequel est branché le contacteur (rappel : un relais de l'IPX800 ne peut commuter que 10A, un contacteur est nécessaire pour un courant plus fort)
Remarque : dans le cas d'une récurrence "Tous les jours" les plages horaires peuvent dépasser minuit pour s'arrêter le lendemain à l'heure de fin prévue.
L'objet Planning TOR
L'objet Planning TOR permet de définir des plages horaires.
La sortie digitale de l'objet passe à l'état ON lorsque l'heure courante est dans une plage définie, sinon la sortie est à l'état Off.
Le bouton permet d'accéder à la création des plages horaires et de configurer la récurrence ou encore les dates de début et de fin.
Récurrence : sélectionner la récurrence
- toutes les semaines : il est possible de définir des plages horaires sur les différents jours de la semaine. Le cycle recommencera chaque semaine jusqu'à ce que l'entrée "Activer" soit mise à OFF.
- Plages personnalisées : il est possible de définir 4 paires de dates début et dates de fin puis des plages horaires sur les jours de la semaine. La sortie de l'objet sera activée à condition que l'heure courante soit comprise entre 2 dates définies et dans la tranche horaire définie sur la journée. La sortie du planning sera OFF en dehors des dates et plages définies.
Exemple d'utilisation
L'éclairage de l'aquarium branché sur un relais est piloté par tranches horaires.
L'objet Planning ANA
L'objet Planning Ana permet d'appliquer une valeur analogique sur sa sortie selon des plages de dates et/ou horaires définies.
Le bouton permet d'accéder à la création des plages horaires et de configurer la récurrence ou encore les dates de début et de fin.
Chaque plage définie pourra être configurée avec la valeur analogique à appliquer.
Exemple d'utilisation
Nous souhaitons piloter notre VMC à commande 0-10V (connectée derrière une extension X-010V) à différentes vitesses en fonction de l'heure.
Pour cela, nous créons un planning ANA et définissons les vitesses sur les plages horaires.
Ces valeurs exprimées en pourcentage de la vitesse maximale seront envoyées à l'extension X-010V .
L'objet Délai
Principe
L'objet délai permet d'appliquer un retard entre la survenance d'un événement et l'action qui en découle. La sortie de l'objet passe ON à la fin du décompte.
Fonctionnement :
Départ : entrée digitale qui lance le décompte lorsqu'elle est activée.
Activer/réinit : entrée digitale qui permet de désactiver ou réinitialiser l'objet Délai.
Si désactivé, il ne réagit plus aux sollicitations de son entrée Départ.
Temps TA : entrée analogique qui représente la durée du retard. Il est possible de saisir une valeur fixe ou de lier une entité analogique pour avoir un délai variable.
Sortie : La sortie est inactive (état OFF) pendant le décompte. Elle passe ON à la fin du décompte.
Décompte : valeur analogique contenant le temps restant.
Le bouton permet la saisie des paramètres.
NOM : nom de l'objet délai. Respectez votre nomenclature.
TA : cliquez sur le bouton à droite pour étendre le cadre.
Unité : sans impact sur le fonctionnement.
Précision décimale : pas d'impact
Valeur : saisir la durée du retard
Secondes : actionnez le bouton pour définir l'unité de temps (seconde ou milliseconde).
Si vous choisissez les secondes, la valeur saisie dans TA sera alors exprimée en secondes, si vous sélectionnez "millisecondes", le retard sera alors exprimé en millisecondes.
Mode HOLD : actionnez le bouton pour changer le comportement.
- HOLD : l'entrée digitale "Départ" se comporte en monostable, elle attend une impulsion ou un front montant. elle repasse off immédiatement puis le décompte commence.
- ON/OFF : l'entrée digitale "Départ" se comporte en bistable. Lorsqu'elle passe à l'état ON, le décompte est lancé.
Contrôle normal : Le bouton "Contrôle normal" a un impact sur la possibilité d'arrêter ou réinitialiser le décompte en cours :
- si "Contrôle normal" :
- associé au mode Hold : Le décompte ne peut pas être arrêté, une nouvelle impulsion pendant le décompte réinitialise le décompte à sa valeur de départ. la sortie s'activera à la fin du décompte.
- associé au mode ON/OFF : Si l'entrée Départ repasse à l'état OFF avant la fin du décompte, le décompte est arrêté et la sortie ne s'active pas.
- si "Contrôle bloqué après démarrage" :
- associé au mode Hold : Après démarrage, le décompte ne peut ni être arrêté, ni être réinitialisé. Il se poursuit jusqu'à la fin.
- associé au mode ON/OFF: Après démarrage, le décompte ne peut être ni arrêté, ni réinitialisé. Il se poursuit jusqu'à la fin.
Exemple d'utilisation
Nous avons installé un capteur de niveau à flotteur dans la piscine. De type NO, le capteur est OFF lorsque le niveau est trop bas. Il est connecté sur l'entrée digitale 2.
Nous souhaitons être averti par mail lorsque le niveau est trop bas. Cependant, les vaguelettes provoquées par le vent ou les baigneurs génèrent des fausses alertes.
Nous devons mettre un système antirebond en place. Pour cela, utilisons un objet Délai, avec TA=1200.
- Créez un objet Délai, paramétrez TA à 1200 secondes, activez le mode ON/OFF
- Liez l'entrée digitale 2 à l'entrée Départ du Délai. Changez le type de lien en NOT
- Créez un objet Mail, renseignez le message ON ("Niveau trop bas") puis liez la sortie du Délai à l'entrée ON/OFF
En mode ON/OFF, le décompte du TA sera interrompu dans le cas de vaguelettes, mais pourra aller au bout dans le cas réel d'un niveau trop bas. Dans ce dernier cas seulement, la sortie de l'objet Délai est activée et la notification par mail est envoyée.
L'entrée digitale 2 est OFF lorsque le niveau est trop bas. Il faut donc inverser sa logique pour que le décompte du délai soit lancé, d'où le lien type NOT.
Lorsqu'une vague survient, l'entrée digitale 2 passe ON ce qui met l'entrée Départ à l'état OFF. Cela interrompt le décompte de TA, la sortie de l'objet Délai ne s'active pas. Le mail n'est pas envoyé.
L'objet Tempo
Principe
L'objet tempo permet d'appliquer une temporisation à une IO. Cette dernière passera OFF dès la fin du décompte.
Fonctionnement
La seule différence avec l'objet Délai qui est décrit au dessus, c'est l'entrée TB au lieu de l'entrée TA.
TB représente la durée de la temporisation, exprimée en secondes ou millisecondes selon le paramétrage.
Les modes HOLD/ON-OFF ou le type de contrôle ont le même fonctionnement que sur l'objet Délai (voir ci-dessus)
Exemple d'utilisation
Un projecteur extérieur est piloté par un bouton poussoir.
Le projecteur est branché sur le relais 4 de l'ipx800, le bouton poussoir est connecté sur l'entrée digitale 6 de la X-24D.
Un appui sur le bouton poussoir allume le projecteur pendant deux minutes, puis celui-ci s'éteint automatiquement.
- Créez un nouvel objet Tempo. Réglez TB sur 120 secondes.
- Liez l'entrée digitale de la X-24D à l'entrée Start de l'objet Tempo, liez la sortie de la tempo à la commande du relais 4 de l'ipx800.
- Remarque : si vous activiez le mode ON/OFF de l'objet Tempo, la lampe ne s'allumerait que pendant l'appui sur le Bouton poussoir étant donné que l'entrée Départ repasserait à OFF lors du relâchement.
L'objet impulsion
L'objet impulsion regroupe le fonctionnement d'un objet délai et d'un objet tempo.
Il possède donc une entrée TA et une entrée TB et de même une sortie analogique pour chaque décompte.
TA représente la durée du délai, TB représente la durée de la temporisation, toutes 2 exprimées en secondes ou millisecondes selon la position du bouton sélecteur.
Une impulsion n'est générée qu'une fois.
Les modes HOLD/ON-OFF ou le type de contrôle ont le même fonctionnement que sur l'objet Délai (voir ci-dessus)
Exemple d'utilisation
Exemple 1
Lors d'une rénovation de la demeure familiale, nous avons fait le choix de laisser les télérupteurs existants.
Nous souhaitons allumer et éteindre le patio avec des plages horaires définies sur un planning.
Les points lumineux du patio sont commandés par un télérupteur électromécanique.
A chaque début de plage horaire, il faut générer une impulsion pour basculer le télérupteur en position ON. Une autre impulsion sera générée pour l'extinction à la fin de la plage.
Le télérupteur est piloté par le relais n°1 de l'IPX800 V5.
Remarque : Ta étant mis à 0, nous aurions également pu utiliser des objets Tempo.
Exemple 2
Nous calculons le temps de filtration en fonction de la température de l'eau, au moyen d'une sonde TC100 placée dans un doigt de gant sur la plomberie.
Cette sonde est connectée à une extension X-400 ANA.
La mesure de la température est fiable si et seulement si la filtration est active. Nous ne tiendrons donc compte de la mesure que 10 minutes après démarrage de la pompe.
Un coefficient réglable sur le dashboard vient moduler la durée du temps de filtration en fonction de l'environnement avoisinant la piscine.
La formule
Principe : 2 plages horaires quotidiennes sont définies dans un Planning TOR. A chaque début de plage horaire, une impulsion est générée.
Dés le début de l'impulsion principale, la bascule RS est activée, ce qui démarre la filtration.
Pendant ce temps, le décompte TA de cette impulsion se poursuit. Au bout de 10 minutes, la fonction de calcul de la durée est activée ce qui autorise le réajustement du résultat qui est transmis au paramètre TB de la temporisation.
30 secondes plus tard, lorsque l'impulsion principale repasse à l'état OFF (fin de son TB), le décompte de la tempo "Filtration" est lancé grâce au lien "NOT" sur son entrée départ.
La bascule RS sera réinitialisée à la fin de ce dernier décompte TB de la tempo lorsque la sortie passera à l'état OFF.
l'Objet Clignotant
Principe
L'objet clignotant est une impulsion répétée automatiquement tant que son entrée Départ reste active.
La sortie s'active alternativement (d'où le nom de clignotant) selon un cycle défini.
Il peut être utilisé comme déclencheur d'une action à intervalle régulier (ex : push vers le data-logger NOTIFIX, ...), comme commande (ex : témoin lumineux clignotant, ...), ...
Fonctionnement
Activer/Réinit : permet de désactiver l'objet. Si désactivé, il ne réagit plus aux sollicitations de son entrée Départ.
Temps TA : entrée analogique représentant la durée du délai.
Temps TB : entrée analogique représentant la durée de la temporisation.
Exemple d'utilisation
Nous souhaitons faire clignoter un texte sur le Liveview lorsque la température extérieure passe sous les 3°C.
- Créez un nouvel objet Clignotant, régler TA et TB pour avoir la périodicité souhaitée,
- Créez un objet comparateur, liez la sortie température du X-THL à l'entrée A du comparateur, renseignez 3 dans la variable de l'entrée B, sélectionnez l'opérateur A<B Liez la sortie du comparateur à l'entrée Départ de l'objet clignotant
- Allez sur votre liveview, créez un widget de type Texte ON/OFF Renseignez "Gelée en cours" dans le TEXTE ON, saisissez un espace dans le TEXTE OFF, sélectionnez la sortie de l'objet clignotant dans le champ Ressource.
L'objet Chrono
Principe
Le Chronomètre mesure le temps en secondes ou millisecondes depuis son activation.
Fonctionnement
L'objet chronomètre, mesure le temps écoulé depuis que son entrée "Entrée/Pause" est passée à l'état ON.
Le chronométrage peut être mis en pause en faisant passer cette même entrée à l'état OFF. Il y aura reprise du chrono au prochain ON.
La sortie Chronomètre contient la durée du chronométrage, exprimée en secondes ou millisecondes selon le paramétrage.
Réinit : permet la remise à 0 du chronomètre.
Exemple 1 d'utilisation
Nous voulons mesurer le temps de fonctionnement quotidien d'un appareil. connecté au relais 1 d'une extension X-8R.
Nous voulons donc réinitialiser le compteur à 0 tous les jours à minuit.
- Créez un objet Calendrier Sélectionnez la récurrence : Tous les jours, Renseignez 23:59:00 en heure de début, Renseignez 23:59:59 en heure de fin
- Créez un nouvel objet CHRONO liez la sortie du calendrier à l'entrée RÉINIT du Chrono,
- liez la sortie "Relay state" à l'entrée DÉPART/PAUSE du Chrono
Exemple 2 d'utilisation
Nous souhaitons réinitialiser et démarrer le chrono avec la même IO. Il faut impérativement insérer un délai pour que la commande Départ soit activée après la commande Réinit
Nous pouvons par exemple créer un délai avec TA=50ms
Exemple 3 d'utilisation
Les entrées Départ et Réinit doivent être activées par 2 IO différentes, mais l'état de l'une(En cours smart) dépend de l'autre (Planning Tor) via le moteur de scénario par exemple.
Nous devons également nous assurer que la commande Départ sera reçue après la commande Réinit. Dans l'exemple nous ajoutons un délai.
Remarque : ce délai additionnel entre les 2 commandes peut s'avérer nécessaire avec les autres objets de temps.
L'objet Compteur
L'objet compteur permet d'incrémenter ou décrémenter une variable analogique.
Le pas d'incrémentation est variable, idem pour la décrémentation.
Ce type d'objet est souvent utilisé pour compter des impulsions.
Considérons d'abord les entrées analogiques :
Valeur PAS : valeur analogique pouvant être fixe ou variable si liée à une autre ressource.
C'est la valeur qui est appliquée en incrémentation chaque fois que l'entrée INC+ est activée.
C'est également la valeur qui est appliquée en décrémentation chaque fois que l'entrée DEC- est activée.
Pensez à définir le format de l'entrée (RAW, REAL et nombre de décimales)
Valeur SET : valeur analogique pouvant être fixe ou variable si liée à une autre ressource.
C'est la valeur d'initialisation qui est appliquée à chaque fois que l'entrée SET est activée.
Pensez à définir le format de l'entrée (RAW, REAL et nombre de décimales)
L'entrée digitale INC+ incrémente le compteur de la valeur du pas lorsqu'elle passe à l'état ON.
L'entrée digitale DEC- décrémente le compteur de la valeur du pas lorsqu'elle passe à l'état ON.
L'entrée digitale SET initialise le compteur à la valeur de "VALEUR SET" lorsqu'elle passe à l'état ON.
L'entrée digitale RÉINIT remet le compteur à 0 lorsqu'elle passe à l'état ON.
L'entrée digitale "Activer" permet de désactiver l'objet afin qu'il ne réponde plus aux sollicitations de ses entrées digitales.
La sortie analogique "Valeur Compteur" contient la valeur en cours. Pensez à définir le format de sortie (RAW, REAL et nombre de décimales)
Exemples d'utilisation
Exemple 1
Un compteur d'énergie avec sortie à impulsions mesure la puissance consommée par une pompe à chaleur (1 imp=1 W).
Nous avons besoin de connaître la consommation quotidienne ainsi que la consommation totale.
Le compteur à impulsion est connecté à l'entrée digitale 1 de l'ipx800.
- créez un calendrier "Minuit" avec heure de début=00:00:00 et heure de fin=00:00:01
- créez un objet compteur nommé "Conso quotidienne",
- configurez le pas à 1
- liez la sortie du calendrier "Minuit" à l'entrée Réinit du compteur,
- liez l'entrée Inc+ à l'entrée digitale 1 de l'ipx800,
- créez un objet compteur nommé "Conso totale",
- liez son entrée Inc+ à l'entrée digitale 1 de l'ipx800,
- configurez le pas à 1
Exemple 2
Nous voulons automatiser une action tous les 14 jours et connaître le nombre de jours restant avant la prochaine exécution.
Nous utiliserons un compteur que nous décrémenterons de 1 tous les jours à minuit, puis nous le réinitialisons à 14 dès que sa valeur devient négative.
L' action est lancée lorsque le compteur atteint la valeur 0.
- créez un calendrier "Minuit" avec heure de début=00:00:00 et heure de fin=00:00:01
- créez un objet compteur nommé "jours restants",
- configurez le pas à 1
- liez la sortie du calendrier "Minuit" à l'entrée Dec- du compteur,
- configurez le pas à 1,
- configurez la valeur Set à 14
- initialisez la valeur à 14
- créez un objet comparateur
- liez son entrée A à la valeur du compteur "jours restants",
- sélectionnez l'opérateur A < B
- créez un comparateur
- liez son entrée A à la valeur du compteur "jours restants",
- sélectionnez l'opérateur A == B,
- liez les objets/ressources qui doivent être pilotés sur la sortie du comparateur A==B
Exemple 3
Avec un même bouton poussoir, nous souhaitons piloter plusieurs points lumineux successivement.
L'une des solutions possibles est l'utilisation d'un compteur. Celui-ci est incrémenté à chaque appui. Des comparateurs évaluent sa valeur et enclenchent l'exécution des actions requises.
Lorsque le compteur dépasse la valeur maximale, il est remis immédiatement à 0.
Exemple :
compteur=0 : luminaires 1 et 2 OFF
compteur= 1 : luminaire 1 ON, 2 OFF,
compteur=2 : luminaire 2 ON, 1 OFF.
compteur=3, réinitialisation à 0
L'objet Télérupteur
L'objet télérupteur permute l'état de sa sortie à chaque impulsion ou front montant sur son entrée digitale.
Il ne comporte aucun paramétrage spécifique à part son nom. Respectez votre nomenclature.
L'objet Monostable
Le monostable émet une impulsion sur sa sortie à chaque changement d'état de son entrée.
Il ne comporte aucun paramétrage spécifique à part son nom. Respectez votre nomenclature.
Exemples d'utilisation
Exemple 1
Notre portail coulissant s'ouvre et se referme avec une impulsion sur une entrée de sa carte électronique.
Nous souhaitons l'ouvrir le matin et le refermer le soir, à des horaires différents en fonction des jours de la semaine.
- Créez un planning TOR dans lequel vous définissez la plage horaire sur laquelle le portail doit être ouvert. Exemple de 08:00:00 à 18:00:00 du lundi au vendredi, et de 08:00:00 à 13:00:00 le samedi.
- Créez un objet Monostable, Liez la sortie du planning à son entrée
- Liez la sortie du monostable à la commande du relais pilotant le portail
Le monostable émet une impulsion chaque fois que son entrée change d'état, c'est à dire au début et à la fin de chaque plage horaire (fronts montants et descendants)
Le service technique doit connaître le nombre de va et vient du portail afin de faire la maintenance préventive.
Nous ajoutons alors un objet compteur que nous incrémentons par pas de 1 à chaque ouverture et fermeture.
Exemple 2
Reprenons l'exemple 1 de l'objet Impulsion.
Nous pouvons remplacer les 2 objets impulsions par le monostable pour piloter le télérupteur.
L'objet Appui long
L'objet Appui long mesure le temps d'activation de son entrée digitale. Si ce temps dépasse un seuil défini, la sortie "Appui long" s'active.
Si le temps d'activation reste en deçà du seuil, c'est la sortie standard qui s'active.
Le bouton permet de modifier le nom de l'objet (respectez votre nomenclature) et permet de régler le temps d'appui nécessaire pour un appui long.
Vitesse d'appui : temps d'appui nécessaire, exprimé en secondes.
Le paramètre Auto OFF s'applique à la sortie "Appui long" uniquement. Elle force un passage à Off automatiquement lorsque l'entrée passe à l'état Off.
- Si ce paramètre est désactivé, la sortie "Appui long" s'active au premier appui long et se désactive lors d'un second appui long.
- Si ce paramètre est activé, la sortie "Appui long" s'active au premier appui long et se désactive automatiquement dès que l'entrée passe à l'état Off.
La sortie "Appui court" s'active lors d'un premier appui court, et se désactive lors d'un deuxième appui court.
L'objet "Double Click"
L'objet Double Click mesure le temps passé entre 2 front montants sur son entrée.
Si le temps passé est inférieur à un seuil fixé, la sortie double click est activée. Si le temps passé en supérieur au seuil, la sortie standard s'active.
Le bouton permet de modifier le nom de l'objet (respectez votre nomenclature) et permet de régler le temps d'appui nécessaire pour un double click.
Vitesse d'appui : temps d'appui nécessaire, exprimé en secondes.
Le paramètre Auto OFF s'applique à la sortie "Double Click" uniquement. Si activé, la sortie Double click est remise à Off automatiquement lorsque l'entrée passe à l'état Off.
- Si ce paramètre est désactivé, la sortie "double click" s'active au premier double click et se désactive lors d'un second double click.
- Si ce paramètre est activé, la sortie "double click" émet une impulsion lors de chaque double click.
La sortie standard s'active lors d'un premier click normal, et se désactive lors d'un deuxième click normal.
L'objet Fader
Fonctionnement
L'objet Fader fait varier la valeur de sa sortie analogique entre un seuil minimum et une valeur maximale prédéfinie pendant un temps déterminé.
VIT. GRADATION : durée en secondes de la variation entre la valeur minimale et la valeur maximale, ou inversement.
LOOP ON/OFF : si activé, l'objet Fader recommence une nouvelle gradation lorsque la précédente est terminée. Si cette entrée est ON, l'entrée Départ est inutilisable.
Le bouton permet de modifier le nom de l'objet (respectez votre nomenclature) et permet de régler les différents paramètres.
- Min: renseignez une valeur entre 0 et 255.
- Max : renseignez une valeur entre 0 et 255
- Gradation Haut : si activée, le Fader augmentera progressivement la valeur de sa sortie du minimum vers le maximum. Si désactivée, il n'y a pas de transition.
- Gradation Bas : si activée, le Fader diminuera progressivement la valeur de sa sortie du maximum vers le minimum. Si désactivée, il n'y a pas de transition.
Si les 2 paramètres de gradation sont activés, la transition progressive sera appliquée à l'augmentation comme à la diminution.
Exemple d'utilisation
Nous utilisons un driver de Leds à commande 0-10V pour la variation.
Un bouton poussoir est branché sur l'entrée digitale 1 de l'IPX800. Le Driver est connecté sur le canal 1 de l'extension X-010V.
Nous souhaitons que l'éclairage varie en continu dans les deux sens.
- Créez un objet Fader
- Liez son entrée Départ à l'entrée digitale n°1
- Liez sa sortie à l'entrée consigne du canal 1 de la X-010V.
Un appui maintenu sur le bouton fera varier les leds.
L'objet Ping Watchdog
Si toutes les tentatives de Ping vers l'adresse de destination ont échoué, la sortie défaut est activée. Cette dernière est désactivée dès qu'une tentative aboutit.
IP Destination : renseignez l'adresse IP à contacter .
Intervalle de temps : temps entre deux tentatives de ping.
Nb. d'essais : nombre de tentatives de ping qui doivent échouer pour que l'objet se mette en défaut.
L'objet Thermostat
Principe :
L’objet thermostat permet de réguler le chauffage ou encore le refroidissement d’une pièce.
A partir d’une consigne et d’un paramètre Hystérésis, l’IPX800 calcule automatiquement la valeur du seuil haut ainsi que celle du seuil bas en utilisant les formules suivantes :
- Seuil haut = consigne + (hystérésis/2)
- Seuil bas = consigne - (hystérésis/2)
Dans le cas où la mesure de température effectuée par la sonde dépasse l’un des seuils, la sortie est activée ou désactivée.
Pour plus d’information sur le fonctionnement du seuil haut et du seuil bas, je vous invite à consulter cet article : Analogiques, Seuil haut, Seuil bas, Hystérésis — GCE Electronics (gce-electronics.com)
Ce qui est vrai pour les ipx800 V3 et V4 l’est aussi pour la V5.
Fonctionnement :
- Consigne : consigne te température actuelle. Cette consigne est modifiable par l’utilisateur, tant par programmation que sur un dashboard. Cette consigne est volatile. L’activation d’un ordre Confort, ECO ou Hors-gel provoquera le remplacement de sa valeur par celle qui est configurée par défaut pour le mode activé.
- Mesure : cette variable contient la valeur de la mesure de température faite par la sonde. Un défaut est remonté dans le cas d’une perte de communication avec celle-ci (valeur inchangée pendant un temps prédéfini). Cette mesure est comparée au seuil haut et au seuil bas.
- Confort : Entrée digitale. Sur front montant, la consigne actuelle est remplacée par la valeur par défaut assignée au mode confort. Les seuils haut et bas sont automatiquement réévalués. La valeur par défaut est à 19°C. Cette valeur est modifiable en mode édition.
- Eco : Entrée digitale. Sur front montant, la consigne actuelle est remplacée par la valeur par défaut assignée au mode confort. Les seuils haut et bas sont automatiquement réévalués. La valeur par défaut est à 16°C. Cette valeur est modifiable en mode édition.
- Hors gel : Entrée digitale. Sur front montant, la consigne actuelle est remplacée par la valeur par défaut assignée au mode confort. Les seuils haut et bas sont automatiquement réévalués. La valeur par défaut est à 8°C. Cette valeur est modifiable en mode édition.
- ON/OFF : Entrée digitale dont l’action est prioritaire sur les entrées Confort/Eco/Hors gel.
- Si cette entrée est ON, la sortie du thermostat sera pilotée normalement selon la consigne et l’hystérésis.
- Si cette entrée est OFF, la sortie est désactivée, le thermostat devient inopérant. Cependant les changement de mode et de consigne restent possibles. Cela permet la prise en compte d’un planning même si le radiateur est éteint. Ainsi, à l’allumage, le mode est conforme aux attentes.
- Défaut : sortie qui est activée si la mesure de la sonde n’a pas varié depuis un temps défini.
Edition de l’objet :
Le menu Édition permet d’accéder aux valeurs par défaut du thermostat.
- Hystérésis : saisir en °C la valeur de l’hystérésis qui servira au calcul des seuils (haut et bas).
- Valeur Confort : consigne de température par défaut assignée au mode Confort. Cette valeur n’est modifiable ni par programmation ni par dashboard.
- Valeur Eco : consigne de température par défaut assignée au mode Eco. Cette valeur n’est modifiable ni par programmation ni par dashboard.
- Valeur Hors Gel : consigne de température par défaut assignée au mode Hors gel. Cette valeur n’est modifiable ni par programmation ni par dashboard.
- Temps avant défaut : Délai en minutes avant la remontée d’un défaut en cas de mesure de sonde ne variant plus (en v5.5.6, le temps est mentionné en secondes, ce bogue sera corrigé).
- Mode inversé :
- Si OFF (par défaut) la sortie du Thermostat est désactivée lors du dépassement du seuil haut et activée si passage en deçà du seuil bas. Ce fonctionnement permet le pilotage d’un système de chauffage.
- Si ON : la sortie est ON dans le cas d’un dépassement de seuil Haut et Off si la température passe en deçà du seuil bas. Cela permet de piloter un système de refroidissement.
- Mode sécurité : si activé, l'état de la sortie est forcé régulièrement à l'état calculé. Si un défaut est détecté, la sortie est remise à OFF. Ce mode est activé par défaut.
Exemple d'utilisation
Modbus
Le protocole Modbus est un protocole série permettant la communication entre un maitre et des esclaves. L'IPX800 V58 supporte le modbus RTU (série) et TCP (sur réseau éthernet).
Principe
Pour Modbus RTU, il faut configurer les communications dans la page System/Modbus. Ensuite, l'utilisation des objets "Modbus Read" et "Modbus Write" permettent le dialogue avec l'esclave.
Objet Modbus Write
Objet Modbus Read
Fonctionnement
Outre l'entête avec l'adresse de l'esclave destinataire de la requête, ces objets permettent la sélection de la requête à envoyer (lecture ou écriture). Il convient ensuite de construire la structure des données à utiliser en glissant et déposant des tuiles de type IO ou analogiques (fonction du type de requête). Il est à noter que ces mêmes objets "Modbus Read" et "Modbus Write" enregistrent les données reçues en réponse dans les variables ainsi utilisées.
Ainsi, si vous devez exploiter la réponse de l'esclave, il suffit d'utiliser les variables IO ou analogiques dans vos règles et liens.
Lors du test d'envoi de la requête, un message de réussite ou d'échec est affiché sur l'IHM.
Pour plus d'information, lire cet article : Modbus et IPX800 V5
La catégorie Scénario
Les scènes :
il est possible d'activer ou désactiver une scène afin d'autoriser ou inhiber l'exécution des règles qu'elle contient.
Par exemple , pour la programmation d'une alarme, il est intéressant d'écrire toutes les règles qui concernent l'armement des partitions dans une même scène, et les règles concernant le désarmement dans une autre.
Ainsi, en fonction de l'état d'une condition (variable IO par exemple), il est possible d'alléger la tâche du moteur de scénario et de préserver ses performances.
Les Règles
Entrée ENABLE :
Il est possible d'activer ou désactiver certaines règles du moteur de scénario, ce qui revient à autoriser ou interdire leur exécution.
Par exemple, en fonction des périodes de chauffe établies dans un calendrier, il est intéressant de désactiver les règles qui allument le chauffage tous les jours.
Sortie RÉSULTAT
Lorsque des événements ou conditions sont trop complexes pour être programmés sous forme de liens, il est possible d'avoir recours au moteur de scénario.
Il convient alors d'assembler les Tuiles correctement dans la clause "Événement". Le résultat de la règle prendra la valeur "Vrai" lorsque toutes les conditions seront remplies.
Ce résultat est mis à disposition sous forme de variable qu'il est alors possible de lier à des objets.
Exemple d'utilisation
La mise en marche de la pompe de filtration d'une piscine dépend de très nombreux critères comme la température de l'eau et de l'air, de la nécessité d'un traitement, d'un usage intensif du bassin, de la météo, des auxiliaires en marche, ...
Toutes ces conditions pourront être assemblées dans la clause Événement d'une règle au sein du moteur de scénario au moyen d' opérateurs logiques ET / OU.
Nous verrons l'utilisation du Moteur de Scénario plus tard.
Le résultat Vrai ou Faux calculé par le moteur de scénario est alors mis à disposition pour construire les liens.
La catégorie Variables
Les variables virtuelles sont des ressources pouvant être créées ou supprimées par l'utilisateur, contrairement aux variables systèmes qui sont gérées par le système.
Les 2 types de variables sont utilisés pour la programmation de l'IPX800.
Vous avez la possibilité de gérer les variables dans les pages de collections.
Pour les variables virtuelles, Il faudra alors choisir l'onglet Virtual.
Exemple avec la collection des ressources analogiques :
Exemple avec la collection des IO :
IO Virtuelle
Les IO virtuelles sont des variables logiques (vrai, faux) qui peuvent être utilisées tant en entrée qu'en sortie.
Elles permettent de simuler un événement ou encore de sauvegarder un état vrai/faux à un instant T.
Liée à une ressource par un lien LINK, une IO prendra la même valeur que cette ressource. Liée par un lien NOT, elle prendra la valeur inverse.
Il peut parfois être utile de créer des variables IO afin de permettre la création de connecteurs complexes entre des objets. Pour plus d'informations à ce sujet, veuillez consulter le sous paragraphe "Connecteurs" de cet article IHM V5 : premiers pas
Les analogiques virtuelles
Les Analogiques virtuelles sont des variables pouvant contenir une donnée numérique, entière ou réelle, codée de 8 bits à 32 bits.
Vous pouvez définir l'unité (seules RAW ou REAL sont prises en compte à ce jour) et définir la précision décimale.
Attention : lorsque vous modifiez ces caractéristiques, la longueur de la partie entière varie. Vérifiez toujours si les limites permises correspondent à la valeur que vous souhaitez stocker.
Une analogique virtuelle peut être liée à une autre ressource analogique, soit pour lui transmettre une valeur (si liée à une entrée), soit pour la récupérer (si liée à une sortie).
Vous pourrez utiliser ce type de variable pour créer des consignes, des seuils, des constantes, vous pourrez insérer leur valeur dans le corps d'une notification (courriel, push, ...) ou encore dans une formule (voir cet article Utilisation des variables )
Les chaînes de caractères
Les variables de type Strings peuvent contenir de 32 à 512 caractères. Elles seront utiles par exemple pour afficher du texte sur un dashboard, sans augmenter la taille mémoire de ce dernier et de ce fait limiter considérablement le nombre de widgets qu'il pourrait contenir.
Attention : lorsque vous parcourez la collection des variables type STR, vos variables ne sont pas séparées des variables systèmes.
Ces dernières pourront cependant être différenciées par le fait qu'elles ne peuvent être supprimées (bouton corbeille désactivé).
Pour le moment, la création de liens avec les variables chaînes de caractères est impossible. Gageons que les futures évolutions nous offriront cette possibilité.
Le texte de ces variables pourra être inséré dans le corps d'une notification push ou courriel (voir cet article Utilisation des variables ).
La catégorie Modules (plugins)
Météo (Weather)
Vous devez d'abord configurer le module Météo avant de pouvoir l'utiliser (voir la documentation de l'ipx800 V5).
La capture ci-dessus est celle des valeurs courantes. Les prévisions sur 7 jours comprennent les mêmes données (à part lever/coucher soleil et Daylgiht).
Daylight : variable type IO. Elle est ON la journée (du lever au coucher du soleil) . Cette donnée peut servir pour l'automatisation de l'éclairage, de volets, ...
Lever soleil : donnée de type Timestamp précisant la date et l'heure du lever du soleil du jour. Analogique 32 bits.
Coucher soleil : donnée de type Timestamp précisant la date et l'heure du coucher du soleil du jour. Analogique 32 bits.
Température : Exprimée en degré Celsius. Analogique 16 bits.
Pression : Exprimée en hPa. Analogique 16 bits.
Humidité : Exprimée en RH. Analogique 16 bits.
Vitesse du vent : Exprimée en m/s. Ana logique 16 bits.
Nuages : Couverture nuageuse, exprimée en %. Analogique 16 bits.
Niveau : prévision de temps, indice numérique de 0 à 6. Analogique 16 bits.
Exemples d'utilisation
1. Calcul du méridien
Comme toute variable analogique, les données météo peuvent être utilisées dans des objets fonctions, par lien ou par l' id.
Nous pouvons calculer le méridien à partir de l'heure de lever et de coucher du soleil
Médiane solaire = ((heure de coucher-heure de lever)/2)+heure de lever
Je vous invite à consulter cet article : Utilisation des variables
2. Notification selon prévisions
L'installation de la piscine est équipée d'une pompe à chaleur.
Tous les mercredi matins à 08:00 nous vérifions les prévisions météorologiques du samedi suivant :
- température >= 20°C,
- Ciel dégagé ou peu nuageux.
Si les conditions sont bonnes et si l'eau est à moins de 20°C, nous souhaitons être notifié par mail que samedi sera une belle journée et qu'il faudrait mettre la PàC en marche pour profiter au mieux du bassin.
Si toutes les conditions sont réunies, la Fonction ET retourne un résultat égal à 1, ce qui permet l'envoi du mail.
Pour plus d'informations sur la fonction ET présentée ici, veuillez consulter l'article Logique combinatoire par liens
Hue
IPX800 V4
PLAYER
LOGIQUE ET, OU avec des liens
Avec les liens, il est tout à fait possible d'exécuter des actions en fonctions d'événements liés par des combinaisons logiques ET, OU.
Par exemple : il est 6h00 ET je dois aller au bureau :
actions : chauffer le café, puis ouvrir le garage 30 minutes plus tard et enfin ouvrir le portail à 7h00 par l'envoi d'une impulsion à la carte de commande.
Vous trouverez plusieurs méthodes pour combiner les événements dans cet article : Logique combinatoire par liens