Bonjour magicbel,
J'ai fait ça il y a longtemps alors je redécouvre en même temps.. donc je vais faire de mon mieux pour être clair..
Quelques images :
Le périphérique VMC
- 1_periph_vmc.PNG (16.98 Kio) Consulté 15984 fois
Les 2 règles associées (pour être précis : une règle et une programmation)
- 2_regles_associees.PNG (15.21 Kio) Consulté 15984 fois
(seules la première et la dernière sont actives, les autres c'est des vieux trucs qu'il faut que je supprime..)
Le détail de la règle de déclenchement :
- 3_regle_declenchement.PNG (30.89 Kio) Consulté 15984 fois
Cette règle se déclenche dès que l'humidité de la SDB devient supérieure à 70%.
Si elle se déclenche, elle va appeler le script qui va faire la comparaison entre l'humidité de la SDB et celle d'une autre pièce. L'idée est que la VMC ne s'acharne pas à faire baisser l'hygrométrie si de toute façon il fait humide de manière générale dans la maison (.. en Normandie ça a tout son sens).
L'appel au script se fait en 'mettant à jour' un périphérique capteur http :
- 3_peripherique_appel_script.PNG (30.85 Kio) Consulté 15984 fois
Et l'adresse à joindre est :
- Code : Tout sélectionner
http://IP.DE.L.EEDOMUS/script/?exec=vmc.php&hygrochambre=XXXX&delta=12&hygrosdb=YYYY&vmc=ZZZZ&dureemax=10800
Avec :
XXXX : numéro du périphérique qui mesure l'hygrométrie dans la pièce de référence
YYYY : numéro du périphérique qui mesure l'hygrométrie dans la SDB
ZZZZ : numéro du périphérique qui contrôle la VMC
delta : ici j'ai mis 12, ce qui veut dire que si l'écart entre l'hygrométrie des 2 périphériques est > à 12%, la VMC se déclenche
En dureemax je rentre un temps maximal de mise en marche en secondes (ici 3h)
(là je me demande pourquoi j'ai mis en plus de cet arrêt auto de la VMC, une programmation minuterie à 90.. peut-être que ça marchait pas.. peut-être que je trouvais que 3 heures c'était trop long mais que j'avais zappé qu'il suffit de bouger la valeur de la variable dureemax.. mystère, mais comme ça marche bien je ne vais pas y toucher
)
Le script en question (vmc.php) :
- Code : Tout sélectionner
<?
$content_type = 'text/xml';
sdk_header($content_type);
$hygrochambre = getValue(getArg('hygrochambre'));
$val_hygrochambre = $hygrochambre['value'];
$hygrosdb = getValue(getArg('hygrosdb'));
$val_hygrosdb = $hygrosdb['value'];
$delta = getArg('delta');
$vmc = getArg('vmc');
$tab_vmc = getValue($vmc);
$etat_vmc = $tab_vmc['value'];
$dureemax = getArg('dureemax'); // duree max d'allumage de la vmc en secondes
//echo "hygro chambre = $val_hygrochambre <br>";
//echo "hygro sdb = $val_hygrosdb <br>";
//echo "delta = $delta <br>";
$texte="standby..";
if ($etat_vmc == 0)
{
// la vmc est éteinte
If ($val_hygrochambre + $delta < $val_hygrosdb)
{
// la vmc est éteinte et l'humidité dépasse le seuil fixé
$texte="on..";
$json_result = setValue($vmc, 100);
saveVariable('vmc_start',time());
}
}
else
// la vmc est allumée
{
$vmc_start = loadVariable('vmc_start');
if ($val_hygrochambre + $delta >= $val_hygrosdb)
{
$texte ="off..";
$json_result = setValue($vmc, 0);
}
if (time() > $vmc_start + $dureemax)
{
$texte ="off..";
$json_result = setValue($vmc, 0);
}
}
//echo "Pour info, le résultat de la demande est <i>[$json_result]</i> </br>";
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<retourvmc>';
$xml .= $texte;
$xml .= '</retourvmc>';
echo $xml;
?>
Reste la fameuse programmation minuterie qui coupe la VMC peu importe l'hygrométrie (qui n'est peut-être pas nécessaire) :
- 4_programmation_minuterie_detail.PNG (30.84 Kio) Consulté 15984 fois
Voilà. J'espère que je n'ai rien oublié et que c'est à peu près clair.
Si ce n'est pas le cas, n'hésite pas à me faire signe. J'essaierai de répondre.. mais les vacances approchent !