[Script] Filtration piscine

Discussion et échanges de scripts pour la box eedomus

[Script] Filtration piscine

Messagepar Herbert » 20 Août 2018 12:15

Si vous êtes l’heureux propriétaire de l’une des 2 millions de piscines recensées en France, peut-être avez-vous une idée du coût de votre système de filtration ? Sinon, multipliez simplement la puissance nominale de votre pompe (en kilowatts) par la durée annuelle de filtration (en heures) puis par le tarif de votre fournisseur d’électricité : surpris ? D’où l’importance de filtrer ni trop ni trop peu pour assurer la qualité de votre eau, limiter votre facture et faire un geste pour la planète … [avant cette prise de conscience, j’ajustais mon programmateur mécanique à cliquets péniblement 2 fois l’an … et encore].
Si vous êtes convaincu, voici une proposition : vous aurez besoin d’un peu de matériel domotique, d’une formule pour calculer quotidiennement la durée optimale, de trois petits scripts et de quelques règles d’automatisation.

J’utilise un micromodule QUBINO 1 Relais [ZMNHAD1] avec sa sonde de température DS18B20 (étanche) : remplacer le programmateur mécanique par le micromodule (par sécurité, je l’ai connecté AVANT le relais du moteur et je ne profite donc pas de la fonction de mesure de consommation). Connecter la sonde de température, et la placer dans l’eau ; chez moi le local est déporté, j’ai percé un petit trou dans le retour des skimmers que j’ai ensuite colmaté avec un produit ad’hoc [on devrait aussi pouvoir bricoler quelque chose avec un collier et porte-sonde pH].

Lorsque la filtration est arrêtée, on fait circuler l’eau toutes les heures pendant 2 minutes (règle + macro) afin de mesurer sa température réelle (et non pas celle du local).
On calcule la moyenne sur 24 heures (par pas de une heure) que l’on stocke sur un périphérique virtuel de type « état - nombre décimal » avec le petit script suivant :
Code : Tout sélectionner
<?
/* Calcul de la température moyenne de l'eau sur 24 heures  :
/doit être lancé toutes les heures, et précédé d'une circulation
d'eau pendant 2 minutes, si la filtration est arrêtée */

// Périphériques
$idperiph1 = xxxxxx  ; // Qubino Température H2O - A REMPLACER
$idperiph2 = xxxxxx  ; // Etat température H2O - A REMPLACER
$tableau1 = getValue($idperiph1);
$temp = $tableau1["value"] ; // Température de l'eau

// Traitement
$heure = date("G") ; // Format 24 hrs, no leading 0
$cumul = loadvariable('cumul') ; // Cumul des températures
$compteur = loadvariable('compteur') ; // Nombre de mesures
$cumul += $temp ; // Nouveau cumul
$compteur += 1 ; // Incrémentation

if ($heure == 7) {
    // Calcul, stockage, et réinitialisation des variables
    $moyenne = $cumul / $compteur ; // Calcul
//    echo "Moyenne : <i>[$moyenne]</i> <br>" ;
    setValue($idperiph2, $moyenne) ; // Stockage
    saveVariable('cumul', 0.0) ; // Réinitialisation 
    saveVariable('compteur', 0) ; // Réinitialisation   
} else {
    // Incrémentation des variables
    saveVariable('cumul', $cumul) ; // Incrémentation 
    saveVariable('compteur', $compteur) ; // Incrémentation   
}

?>

Pour calculer la durée de filtration en minutes, j’utilise la fonction suivante (à partir de 5°C) :
durée = 80.812028 * exp(0.093454 * température moyenne J-1).
En dessous de 5°C : 120 minutes (au dessous de 10°C les algues ne se développent pas).
durée.jpg
Modélisation
durée.jpg (34.47 Kio) Consulté 8435 fois

L’heure de démarrage doit être adaptée à la durée ; j’utilise 11 heures (au dessous de 10°C), 9 heures (de 10 à 26°C), et 7h30 au dessus. Cette heure est calculée quotidiennement (à 7h10) après le calcul de la température moyenne, et stockée sur un périphérique virtuel de type « état - liste de valeurs » avec le petit script suivant :
Code : Tout sélectionner
<?
// Calcul de l'heure de démarrage de la filtration
// (à lancer quotidiennement par règle avant 7h30)

$idperiph1 = xxxxxx ; // Etat température H2O - A REMPLACER
$tableau1 = getValue($idperiph1);
$temp = $tableau1["value"] ; // Température de l'eau
$idperiph2 = xxxxxx ; // Etat démarrage Filtration - A REMPLACER

if ($temp < 10) {
  setValue($idperiph2, 11) ; // Démarrage à 11 heures
} else if ($temp >= 10 and $temp < 27) {
  setValue($idperiph2, 9) ; // Démarrage à 9 heures
} else {
  setValue($idperiph2, 7.5) ; // Démarrage à 7 heures 30 minutes
}
?>

Suivant l’heure de démarrage ainsi calculée, trois règles lancent alors le script suivant qui calcule la durée et active une macro à durée variable sur le relais QUBINO :
Code : Tout sélectionner
<?
// Périphériques
$idperiph1 = xxxxxx ; // Etat température H2O - A REMPLACER
$tableau1 = getValue($idperiph1) ;
$temp = $tableau1["value"] ; // Température de l'eau

$idperiph2 = xxxxxx ; // Relais Pompe Filtration [QUBINO] - A REMPLACER
$idmacro2 = xxxxxx ; // filtration [x] minutes [macro à durée variable sur relais QUBINO]
/*********************************** OPTIONNEL ************************************/
//$idperiph3 = xxxxxx ; // Indicateur (virtuel) Filtration en cours (pour information)
//$idmacro3 = xxxxxx ; // ON [x] minutes [macro à durée variable sur indicateur vrtuel]
/*********************************** OPTIONNEL ************************************/

$minutes = 0 ; /*Durée de filtration en minutes*/

if ($temp <= 5.0) {
  $minutes = 120 ; // Durée 120 minutes
} else {
//  durée (en minutes) = 80.812028 * exp(0.093454 * température Celsius)
  $a = 0.093454 ;
  $b = 80.812028 ;
  $ax = $temp * $a ;
  $minutes = exp($ax) * $b ;
}

if ($minutes >= 1440) {
    $minutes = 24 * 60 ;
} else {
    $minutes = round($minutes) ;
}

$json_result = setMacro($idperiph2, $idmacro2, $dynamic_value = $minutes) ;
//$json_result = setMacro($idperiph3, $idmacro3, $dynamic_value = $minutes) ; // OPTIONNEL

/*echo "La macro <b>[$idmacro2]</b> a été demandée pour votre périphérique dont le code API est <b>[$idperiph2]</b><br>";
echo "Température de l'eau : <i>[$temp]</i> <br>";
echo "Durée de filtration calculée en heures : <i>[$heures]</i> <br>";
echo "Pour info, le résultat de la demande est : <i>[$json_result]</i> <br>"; */
?>

macros_filtration.jpg
Macros
macros_filtration.jpg (97.56 Kio) Consulté 8435 fois
Dernière édition par Herbert le 21 Déc 2018 19:33, édité 1 fois.
Herbert
 
Messages : 31
Inscription : 16 Août 2018

Re: Filtration piscine

Messagepar Kitor » 20 Août 2018 14:02

Très sympa tout sa :)
J'ai aussi mis en place la filtration piscine : http://kitor.synology.me/wordpress/prin ... a-piscine/
Mais j'ai utilisé la règle pré-programmée EEDOMUS
L'avantage de ta méthode et le démarrage en fonction de la température, perso, je règle cela en fonction de l'année.
Pièces jointes
Capture.PNG
Capture.PNG (23.43 Kio) Consulté 8423 fois
Kitor
 
Messages : 934
Inscription : 18 Nov 2014

Re: Filtration piscine

Messagepar Herbert » 20 Août 2018 15:04

Mais j'ai utilisé la règle pré-programmée EEDOMUS

Merci pour l'info :mrgreen: . Nos deux méthodes se ressemblent beaucoup, la mienne est un peu plus complexe (probablement aussi un peu plus précise, quoique à la marge) mais il me semble l'avoir mise en place avant que la règle eedomus ne soit disponible. En tous cas les deux sont fonctionnelles.
Herbert
 
Messages : 31
Inscription : 16 Août 2018

Re: Filtration piscine

Messagepar Anthony86 » 03 Déc 2018 17:58

bonjour a vous

j'aimerais domotiser ma pisicne sachant qu'elle est pas encore construite.

j ai donc une pompe de filtration m'ai ont m'as conseille de mettre ceci pour gere (Aeotec ZW078 "Heavy Duty Smart Switch Gen5" - Actionneur ON/OFF 40A (9600W) Z‑Wave+ avec mesure de la consommation)

sachant que je veut aussi gere mes lumieres

l'idee du Fibaro FGS-222 me plait bien et je baisse surtout ma facture !!

ensuite pour la temperature que me conseille vous??

merci
Box Eedomus, modules Ecodevice, compteur Gioanola eau, Fibaro FGS-222 Switch,Fibaro FGMS-001-ZW5,REMOTEC ZXT-120 , 2 smoke sensor , 5 QUBINO ZMNHJD1, RFXcom,2 sondes Oregon THGR810, 3 sondes THN132N, 1 sonde BTHGN129
Anthony86
 
Messages : 528
Inscription : 09 Jan 2017


Re: Filtration piscine

Messagepar Anthony86 » 04 Déc 2018 10:00

bonjour et merci

donc pour la puissance moteur un Fibaro suffit?

pas trop compliqué a mettre la sonde ?


merci d avance
Box Eedomus, modules Ecodevice, compteur Gioanola eau, Fibaro FGS-222 Switch,Fibaro FGMS-001-ZW5,REMOTEC ZXT-120 , 2 smoke sensor , 5 QUBINO ZMNHJD1, RFXcom,2 sondes Oregon THGR810, 3 sondes THN132N, 1 sonde BTHGN129
Anthony86
 
Messages : 528
Inscription : 09 Jan 2017

Re: Filtration piscine

Messagepar Kitor » 04 Déc 2018 11:12

La sonde très facile, une perceuse avec le foret qui vas bien (tout est expliqué dans la notice)

Pour le moteur, comme expliqué, j'ai branché le FGS sur le relai est non directement au moteur.

Si tu ne peux pas faire la même chose renseigne toi auprès du plus grand nombre (je ne veux pas mettre le feu chez toi ;) )
Kitor
 
Messages : 934
Inscription : 18 Nov 2014

Re: Filtration piscine

Messagepar Anthony86 » 04 Déc 2018 11:48

ok quel relai je pense que toute les filtrations sont identiques non???
Box Eedomus, modules Ecodevice, compteur Gioanola eau, Fibaro FGS-222 Switch,Fibaro FGMS-001-ZW5,REMOTEC ZXT-120 , 2 smoke sensor , 5 QUBINO ZMNHJD1, RFXcom,2 sondes Oregon THGR810, 3 sondes THN132N, 1 sonde BTHGN129
Anthony86
 
Messages : 528
Inscription : 09 Jan 2017

Re: Filtration piscine

Messagepar Kitor » 04 Déc 2018 12:39

Stp, tout est dans mon tuto

------

Après vérification, la borne A1 est la phase permettant d’activer la filtration.
C’est donc sur celle-ci que je vais connecter ma sortie Q1 du micro module
Kitor
 
Messages : 934
Inscription : 18 Nov 2014

Re: Filtration piscine

Messagepar Anthony86 » 04 Déc 2018 12:43

ok

veuillez m'excusez

cordialement
Box Eedomus, modules Ecodevice, compteur Gioanola eau, Fibaro FGS-222 Switch,Fibaro FGMS-001-ZW5,REMOTEC ZXT-120 , 2 smoke sensor , 5 QUBINO ZMNHJD1, RFXcom,2 sondes Oregon THGR810, 3 sondes THN132N, 1 sonde BTHGN129
Anthony86
 
Messages : 528
Inscription : 09 Jan 2017

Re: Filtration piscine

Messagepar Seyko » 10 Août 2021 17:54

Kitor a écrit:Très sympa tout sa :)
J'ai aussi mis en place la filtration piscine : http://kitor.synology.me/wordpress/prin ... a-piscine/
Mais j'ai utilisé la règle pré-programmée EEDOMUS
L'avantage de ta méthode et le démarrage en fonction de la température, perso, je règle cela en fonction de l'année.


Bonjour,

Je m'interroge sur la règle prédéfini eedomus, il se base en fonction de la température de l'eau, mais à qu'elle moment ? Au début du lancement de la règle ?

Merci
Seyko
 
Messages : 54
Inscription : 17 Oct 2018

Re: [Script] Filtration piscine

Messagepar Seyko » 11 Août 2021 21:13

Herbert a écrit:Si vous êtes l’heureux propriétaire de l’une des 2 millions de piscines recensées en France, peut-être avez-vous une idée du coût de votre système de filtration ? Sinon, multipliez simplement la puissance nominale de votre pompe (en kilowatts) par la durée annuelle de filtration (en heures) puis par le tarif de votre fournisseur d’électricité : surpris ? D’où l’importance de filtrer ni trop ni trop peu pour assurer la qualité de votre eau, limiter votre facture et faire un geste pour la planète … [avant cette prise de conscience, j’ajustais mon programmateur mécanique à cliquets péniblement 2 fois l’an … et encore].
Si vous êtes convaincu, voici une proposition : vous aurez besoin d’un peu de matériel domotique, d’une formule pour calculer quotidiennement la durée optimale, de trois petits scripts et de quelques règles d’automatisation.

J’utilise un micromodule QUBINO 1 Relais [ZMNHAD1] avec sa sonde de température DS18B20 (étanche) : remplacer le programmateur mécanique par le micromodule (par sécurité, je l’ai connecté AVANT le relais du moteur et je ne profite donc pas de la fonction de mesure de consommation). Connecter la sonde de température, et la placer dans l’eau ; chez moi le local est déporté, j’ai percé un petit trou dans le retour des skimmers que j’ai ensuite colmaté avec un produit ad’hoc [on devrait aussi pouvoir bricoler quelque chose avec un collier et porte-sonde pH].

Lorsque la filtration est arrêtée, on fait circuler l’eau toutes les heures pendant 2 minutes (règle + macro) afin de mesurer sa température réelle (et non pas celle du local).
On calcule la moyenne sur 24 heures (par pas de une heure) que l’on stocke sur un périphérique virtuel de type « état - nombre décimal » avec le petit script suivant :
Code : Tout sélectionner
<?
/* Calcul de la température moyenne de l'eau sur 24 heures  :
/doit être lancé toutes les heures, et précédé d'une circulation
d'eau pendant 2 minutes, si la filtration est arrêtée */

// Périphériques
$idperiph1 = xxxxxx  ; // Qubino Température H2O - A REMPLACER
$idperiph2 = xxxxxx  ; // Etat température H2O - A REMPLACER
$tableau1 = getValue($idperiph1);
$temp = $tableau1["value"] ; // Température de l'eau

// Traitement
$heure = date("G") ; // Format 24 hrs, no leading 0
$cumul = loadvariable('cumul') ; // Cumul des températures
$compteur = loadvariable('compteur') ; // Nombre de mesures
$cumul += $temp ; // Nouveau cumul
$compteur += 1 ; // Incrémentation

if ($heure == 7) {
    // Calcul, stockage, et réinitialisation des variables
    $moyenne = $cumul / $compteur ; // Calcul
//    echo "Moyenne : <i>[$moyenne]</i> <br>" ;
    setValue($idperiph2, $moyenne) ; // Stockage
    saveVariable('cumul', 0.0) ; // Réinitialisation 
    saveVariable('compteur', 0) ; // Réinitialisation   
} else {
    // Incrémentation des variables
    saveVariable('cumul', $cumul) ; // Incrémentation 
    saveVariable('compteur', $compteur) ; // Incrémentation   
}

?>

Pour calculer la durée de filtration en minutes, j’utilise la fonction suivante (à partir de 5°C) :
durée = 80.812028 * exp(0.093454 * température moyenne J-1).
En dessous de 5°C : 120 minutes (au dessous de 10°C les algues ne se développent pas).
durée.jpg

L’heure de démarrage doit être adaptée à la durée ; j’utilise 11 heures (au dessous de 10°C), 9 heures (de 10 à 26°C), et 7h30 au dessus. Cette heure est calculée quotidiennement (à 7h10) après le calcul de la température moyenne, et stockée sur un périphérique virtuel de type « état - liste de valeurs » avec le petit script suivant :
Code : Tout sélectionner
<?
// Calcul de l'heure de démarrage de la filtration
// (à lancer quotidiennement par règle avant 7h30)

$idperiph1 = xxxxxx ; // Etat température H2O - A REMPLACER
$tableau1 = getValue($idperiph1);
$temp = $tableau1["value"] ; // Température de l'eau
$idperiph2 = xxxxxx ; // Etat démarrage Filtration - A REMPLACER

if ($temp < 10) {
  setValue($idperiph2, 11) ; // Démarrage à 11 heures
} else if ($temp >= 10 and $temp < 27) {
  setValue($idperiph2, 9) ; // Démarrage à 9 heures
} else {
  setValue($idperiph2, 7.5) ; // Démarrage à 7 heures 30 minutes
}
?>

Suivant l’heure de démarrage ainsi calculée, trois règles lancent alors le script suivant qui calcule la durée et active une macro à durée variable sur le relais QUBINO :
Code : Tout sélectionner
<?
// Périphériques
$idperiph1 = xxxxxx ; // Etat température H2O - A REMPLACER
$tableau1 = getValue($idperiph1) ;
$temp = $tableau1["value"] ; // Température de l'eau

$idperiph2 = xxxxxx ; // Relais Pompe Filtration [QUBINO] - A REMPLACER
$idmacro2 = xxxxxx ; // filtration [x] minutes [macro à durée variable sur relais QUBINO]
/*********************************** OPTIONNEL ************************************/
//$idperiph3 = xxxxxx ; // Indicateur (virtuel) Filtration en cours (pour information)
//$idmacro3 = xxxxxx ; // ON [x] minutes [macro à durée variable sur indicateur vrtuel]
/*********************************** OPTIONNEL ************************************/

$minutes = 0 ; /*Durée de filtration en minutes*/

if ($temp <= 5.0) {
  $minutes = 120 ; // Durée 120 minutes
} else {
//  durée (en minutes) = 80.812028 * exp(0.093454 * température Celsius)
  $a = 0.093454 ;
  $b = 80.812028 ;
  $ax = $temp * $a ;
  $minutes = exp($ax) * $b ;
}

if ($minutes >= 1440) {
    $minutes = 24 * 60 ;
} else {
    $minutes = round($minutes) ;
}

$json_result = setMacro($idperiph2, $idmacro2, $dynamic_value = $minutes) ;
//$json_result = setMacro($idperiph3, $idmacro3, $dynamic_value = $minutes) ; // OPTIONNEL

/*echo "La macro <b>[$idmacro2]</b> a été demandée pour votre périphérique dont le code API est <b>[$idperiph2]</b><br>";
echo "Température de l'eau : <i>[$temp]</i> <br>";
echo "Durée de filtration calculée en heures : <i>[$heures]</i> <br>";
echo "Pour info, le résultat de la demande est : <i>[$json_result]</i> <br>"; */
?>

macros_filtration.jpg



Bonjour Herbert,

Ou trouver ton script sur eedomus ? Quel est sont nom sur le store ? Merci
Seyko
 
Messages : 54
Inscription : 17 Oct 2018


Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 21 invité(s)