Différences entre les versions de « Utilisation des variables »
Ligne 12 : | Ligne 12 : | ||
== Introduction == | == Introduction == | ||
Le but de ce tuto est de montrer l'utilisation de variables dans les '''Fonctions''' en se basant sur un exemple concret : à partir | Le but de ce tuto est de montrer l'utilisation de variables dans les '''Fonctions''' en se basant sur un exemple concret : à partir 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 == | == Le principe == | ||
On va utiliser le module Météo qu'il faudra activer et configurer et des Objets Fonction, accessibles dans l'onglet Liens. | On va utiliser le module Météo qu'il faudra activer et configurer et 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 : | La première étape va consister à trouver l'heure du milieu de la journée solaire. La formule sera : | ||
Ligne 25 : | Ligne 25 : | ||
-> Durée de filtration = T°eau/2 en heures. | -> Durée de filtration = T°eau/2 en heures. | ||
Pour calculer les heures de démarrage et d'arrêt il nous faut diviser cette durée par 2 et pour pouvoir l'utiliser dans les formules avec les TimeStamp (voir ci-dessous) on la convertit en secondes, la formule devient donc : Demi durée de filtration = | Pour calculer les heures de démarrage et d'arrêt il nous faut diviser cette durée par 2 et pour pouvoir l'utiliser dans les formules avec les TimeStamp (voir ci-dessous) on la convertit en secondes, la formule devient donc : Demi durée de filtration =( T°eau/2) /2 x 3600 en secondes, formule simplifiée en : | ||
'''-> Demi durée de filtration = T°eau x 900 en secondes''' | '''-> Demi durée de filtration = T°eau x 900 en secondes''' | ||
Ligne 39 : | Ligne 39 : | ||
Pour la suite on utilise deux Règles regroupées dans une Scène, accessible dans l'onglet Scénario. | 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 | On compare cette Heure de démarrage à l'heure courante pour enclencher le relais : | ||
-> '''Heure courante > Heure démarrage => | -> '''Heure courante > Heure démarrage => Relais ON''' | ||
Et on compare cette Heure d'arrêt à l'heure courante pour déclencher le | Et on compare cette Heure d'arrêt à l'heure courante pour déclencher le relais : | ||
-> '''Heure courante > Heure d'arrêt => | -> '''Heure courante > Heure d'arrêt => Relais OFF''' | ||
== Les variables utilisées == | == Les variables utilisées == | ||
Ligne 116 : | Ligne 116 : | ||
L'intérêt du TimeStamp est qu'il permet de faire des calculs sur les dates et heures ou de faire des comparaisons. | L'intérêt du TimeStamp est qu'il permet de faire des calculs sur les dates et heures ou de faire des comparaisons. | ||
L'IPX V5 stocke le TimeStamp dans une Ana<sup>32</sup> RAW donc la valeur la plus grande pourra être 4 294 967 295, soit le 7 février 2106 à 7 h 28 min 15 s, ce qui nous laisse encore le temps de profiter de nos piscines... | L'IPX V5 stocke le TimeStamp dans une Ana<sup>32</sup> RAW donc la valeur la plus grande pourra être 4 294 967 295, soit le 7 février 2106 à 7 h 28 min 15 s, ce qui nous laisse encore le temps de profiter de nos piscines... | ||
== Le Diagramme == | |||
[[Fichier:$variables$ v5.png|centré|sans_cadre|1292x1292px]] | |||
== Utilisation des Fonctions == | == Utilisation des Fonctions == | ||
Ligne 121 : | Ligne 124 : | ||
=== Médiane solaire === | === Médiane solaire === | ||
La variable résultante est la $ | La variable résultante est la $327703$. | ||
[[Fichier:Milieu1.png|sans_cadre|450x450px]] -> [[Fichier:Milieu2.png|sans_cadre|450x450px]] | [[Fichier:Milieu1.png|sans_cadre|450x450px]] -> [[Fichier:Milieu2.png|sans_cadre|450x450px]] | ||
Ligne 128 : | Ligne 131 : | ||
x est la T° de l'eau en °C (résultat d'une Fonction selon le type de sonde utilisée). | x est la T° de l'eau en °C (résultat d'une Fonction selon le type de sonde utilisée). | ||
La variable résultante est la $ | La variable résultante est la $327713$. | ||
[[Fichier:Duree.png|sans_cadre|450x450px]] | [[Fichier:Duree.png|sans_cadre|450x450px]] | ||
=== Début filtration === | === Début filtration === | ||
La variable résultante est la $ | La variable résultante est la $327710$. | ||
[[Fichier:Debut filtration.png|sans_cadre|450x450px]] | [[Fichier:Debut filtration.png|sans_cadre|450x450px]] | ||
=== Fin filtration === | === Fin filtration === | ||
La variable résultante est la $ | La variable résultante est la $327708$. | ||
[[Fichier:Fin filtration.png|sans_cadre|450x450px]] | [[Fichier:Fin filtration.png|sans_cadre|450x450px]] | ||
== Utilisation des Règles == | == Utilisation des Règles au lieu de la bascule RS == | ||
Ce qui suit ne peut pas être fait par un Objet, on utilise donc des Règles. | Ce qui suit ne peut pas être fait par un Objet, on utilise donc des Règles. | ||
=== Enclenchement du | === Enclenchement du relais === | ||
[[Fichier:ON RELAI.png|sans_cadre|750x750px]] | [[Fichier:ON RELAI.png|sans_cadre|750x750px]] | ||
Ligne 150 : | Ligne 153 : | ||
[[Fichier:OFF RELAI.png|sans_cadre|750x750px]] | [[Fichier:OFF RELAI.png|sans_cadre|750x750px]] | ||
== Résultat == | == Résultat == | ||
Voici ce que ça donne dans un | Voici ce que ça donne dans un Dashboard (je l'ai mis en hauteur pour faciliter la lecture sur téléphone). | ||
Deux versions : à gauche, Il y a plus de Widgets que vraiment | Deux versions : à gauche, Il y a plus de Widgets que vraiment nécessaire mais ça permet de voir les valeurs intermédiaires, à droite ce qui est réellement utile : | ||
[[Fichier:DashboardGC.png|sans_cadre]] [[Fichier:DashboardGC 2.png|sans_cadre]] | [[Fichier:DashboardGC.png|sans_cadre]] [[Fichier:DashboardGC 2.png|sans_cadre]] |
Version du 20 juillet 2023 à 17:41
| |||
---|---|---|---|
Nom | $variable$ | ||
Famille | IPX800 V5 | ||
Wiki créé le | 14/07/2023 | ||
Wiki mis à jour le | 20/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 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 le module Météo qu'il faudra activer et configurer et 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 :
-> Médiane solaire = ((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 calculer les heures de démarrage et d'arrêt il nous faut diviser cette durée par 2 et pour pouvoir l'utiliser dans les formules avec les TimeStamp (voir ci-dessous) on la convertit en secondes, la formule devient donc : Demi durée de filtration =( T°eau/2) /2 x 3600 en secondes, formule simplifiée en :
-> Demi durée de filtration = T°eau x 900 en secondes
On détermine ensuite l'heure de démarrage de la filtration. La formule sera :
-> Début filtration = Heure médiane - Demi durée de filtration
Puis on détermine l'heure d'arrêt de la filtration. La formule sera :
-> Fin filtration = Heure médiane + Demi durée de filtration
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 relais :
-> Heure courante > Heure démarrage => Relais ON
Et on compare cette Heure d'arrêt à l'heure courante pour déclencher le relais :
-> Heure courante > Heure d'arrêt => Relais 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 solaire | 327703 | RAW | Usager | |
Température de l'eau | 327691 | RAW | Usager | |
Demi durée de filtration | 327713 | 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 faire des calculs sur les dates et heures ou de faire des comparaisons.
L'IPX V5 stocke le TimeStamp dans une Ana32 RAW donc la valeur la plus grande pourra être 4 294 967 295, soit le 7 février 2106 à 7 h 28 min 15 s, ce qui nous laisse encore le temps de profiter de nos piscines...
Le Diagramme
Utilisation des Fonctions
Suite à un souci avec les valeurs négatives, pas encore corrigé à la date d'écriture de ce wiki, dans certains cas 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 X de la 2nde.
Médiane solaire
La variable résultante est la $327703$.
Demi durée de filtration
x est la T° de l'eau en °C (résultat d'une Fonction selon le type de sonde utilisée).
La variable résultante est la $327713$.
Début filtration
La variable résultante est la $327710$.
Fin filtration
La variable résultante est la $327708$.
Utilisation des Règles au lieu de la bascule RS
Ce qui suit ne peut pas être fait par un Objet, on utilise donc des Règles.
Enclenchement du relais
Déclenchement du relais
Résultat
Voici ce que ça donne dans un Dashboard (je l'ai mis en hauteur pour faciliter la lecture sur téléphone).
Deux versions : à gauche, Il y a plus de Widgets que vraiment nécessaire mais ça permet de voir les valeurs intermédiaires, à droite ce qui est réellement utile :