Utilisation des variables
| |||
---|---|---|---|
Nom | $variable$ | ||
Famille | IPX800 V5 | ||
Wiki créé le | 14/07/2023 | ||
Wiki mis à jour le | 14/07/2023 | ||
Auteur | @Grocrabe |
Introduction
Le but de ce tuto est de montrer l'utilisation de variables dans les Fonctions en se basant sur un exemple concret : à partir de valeurs de variables présentes dans l'IPX, calculer automatiquement la durée de filtration en fonction de la T° de l'eau ainsi que les heures de démarrage et d'arrêt, sachant que la période de filtration sera centrée sur le jour solaire.
Le principe
On va utiliser des Objets Fonction, accessibles dans l'onglet Liens.
La première étape va consister à trouver l'heure du milieu de la journée solaire. La formule sera :
-> Heure médiane = ((heure de coucher-heure de lever)/2)+heure de lever
Puis on calcule la durée de filtration. Il y a plusieurs formules, ici on utilise la plus simple :
-> Durée de filtration = T°eau/2 en heures.
Pour pouvoir l'utiliser dans les formules avec les TimeStamp (voir ci-dessous) on la convertit en secondes, la formule devient donc : Durée de filtration = T°eau/2 x 3600 en secondes, formule simplifiée en :
-> Durée de filtration = T°eau x 1800 en secondes
On détermine ensuite l'heure de démarrage de la filtration. La formule sera :
-> Heure démarrage = Heure médiane - (Durée de filtration/2)
Puis on détermine l'heure d'arrêt de la filtration. La formule sera :
-> Heure arrêt = Heure médiane + (Durée de filtration/2)
Pour la suite on utilise deux Règles regroupées dans une Scène, accessible dans l'onglet Scénario.
On compare cette Heure de démarrage à l'heure courante pour enclencher le relai :
-> Heure courante > Heure démarrage => Relai ON
Et on compare cette Heure d'arrêt à l'heure courante pour déclencher le relai :
-> Heure courante > Heure d'arrêt => Relai OFF
Les variables utilisées
Nous allons utiliser plusieurs variables Ana32 :
Définition | Nom | N° identification | Format | Propriétaire |
---|---|---|---|---|
Heure du lever du soleil | [WEATHER]SUNRISE DAY | 327688 | TimeStamp | Système |
Heure du coucher du soleil | [WEATHER]SUNSET DAY | 327689 | TimeStamp | Système |
Heure courante | [IPX]CLOCK | 327687 | TimeStamp | Système |
Heure médiane | 327703 | RAW | Usager | |
Température de l'eau | 327691 | RAW | Usager | |
Durée de filtration | 327718 | RAW | Usager | |
Heure de démarrage | 327710 | RAW | Usager | |
Heure d'arrêt | 327708 | RAW | Usager |
Les N° d'identification des variables sont propres à mon installation. Vous devez relever celles utilisées par votre IPX V5.
Vous les retrouvez en regardant les collections :
Définition du TimeStamp
Un système d’horodatage a été mis en place depuis le 1er janvier 1970 : le TimeStamp qui donne le temps en secondes écoulé depuis le 1er janvier 1970 à 00 h. Par exemple, le 14/07/2023 à 15:00:00 correspond au TimeStamp : 1689339600.
L'intérêt du TimeStamp est qu'il permet de comparer facilement les dates en faisant une simple opération de différence.
Comme la plupart des systèmes informatiques l'IPX V5 stocke le TimeStamp dans une Ana32 réelle (les dates antérieures au 01/01/1970 sont négatives) donc la valeur à venir la plus grande pourra être 2 147 483 647, soit le 19 janvier 2038 à 3 h 14 min 7 s. Ce qui nous laisse encore le temps de profiter de nos piscines...
Utilisation des Fonctions
Suite à un souci sur l'utilisation des soustractions, pas encore corrigé à la date d'écriture de ce wiki, il faut scinder les formules utilisant une soustraction en 2 Fonctions. Pour cela il suffit de lier la sortie de la 1ère à l'entrée de la 2nde.
Milieu de la journée
Durée de filtration
x est la T° de l'eau (résultat d'une Fonction selon le type de sonde utilisée).
Heure de démarrage
Heure d'arrêt
Utilisation des Règles
Ce qui suit ne peut pas être fait par un Objet, on utilise donc des Règles.
Enclenchement du relai
Déclenchement du relai
Résultat
Voici ce que ça donne dans un DashBoard (je l'ai mis en hauteur pour faciliter la lecture sur téléphone).
Il y a plus de Widgets que vraiment nécéssaire mais ça permet de voir les valeurs intermédiaires :