Bonsoir André et Bonsoir à tous,
J'ai eu besoin d'une hystérésis sur la condition de température et je propose cette solution :
J'avais déjà rajouté une hystérésis sur des versions 6.xx mais voici la solution que je viens d'implanter sur la version 12.06
Le principe :
pour déclencher une hystérésis je programme par exemple une condition de température >= 20° ET une condition de température <= 18° dans la page Actions.
Evidemment dans l'état actuel du code cela produit un résultat qui est toujours faux car la température ne pourra jamais être en même temps <= 18° ET >= 20°
Par contre après ajout des lignes de code suivantes, celui-ci détecte cette condition et bascule en mode hystérésis dont la valeur est dans cet exemple 20° - 18° = 2°
voici le code :
dans le fichier Actions.h
ajouter à la ligne 62 :
int Tseuil = 2000;
dans le fichier Actions.cpp
modifier le code comme suit à partir de la ligne 185
/*
if (Temperature > -100) {
if (Tinf[i] <= 1000 && int(Temperature * 10.0) > Tinf[i]) { ConditionsOk = false; }
if (Tsup[i] <= 1000 && int(Temperature * 10.0) < Tsup[i]) { ConditionsOk = false; }
}
*/
if (Temperature > -100) {
if (Tinf[i] <= 1000 && Tsup[i] <= 1000 && Tinf[i] < Tsup[i]) { // on applique une hystérésis dont les valeurs sont Tinf et Tsup
if (Temperature * 10.0 > Tinf[i] && Temperature * 10.0 > Tsup[i]) Tseuil = Tinf[i];
if (Temperature * 10.0 < Tinf[i] && Temperature * 10.0 < Tsup[i]) Tseuil = Tsup[i];
if (Temperature * 10.0 > Tseuil) { ConditionsOk = false; }
}
else {
if (Tinf[i] <= 1000 && int(Temperature * 10.0) > Tinf[i]) { ConditionsOk = false; }
if (Tsup[i] <= 1000 && int(Temperature * 10.0) < Tsup[i]) { ConditionsOk = false; }
}
}
J'ai laissé en commentaire le code d'origine.
Voilà c'est tout ce qu'il y a à faire.
Si André pense que c'est utile il pourra peut-être rajouter cette hystérésis sur la température dans la version 13
Cdlt F6AAM Jean-Claude
J'ai eu besoin d'une hystérésis sur la condition de température et je propose cette solution :
J'avais déjà rajouté une hystérésis sur des versions 6.xx mais voici la solution que je viens d'implanter sur la version 12.06
Le principe :
pour déclencher une hystérésis je programme par exemple une condition de température >= 20° ET une condition de température <= 18° dans la page Actions.
Evidemment dans l'état actuel du code cela produit un résultat qui est toujours faux car la température ne pourra jamais être en même temps <= 18° ET >= 20°
Par contre après ajout des lignes de code suivantes, celui-ci détecte cette condition et bascule en mode hystérésis dont la valeur est dans cet exemple 20° - 18° = 2°
voici le code :
dans le fichier Actions.h
ajouter à la ligne 62 :
int Tseuil = 2000;
dans le fichier Actions.cpp
modifier le code comme suit à partir de la ligne 185
/*
if (Temperature > -100) {
if (Tinf[i] <= 1000 && int(Temperature * 10.0) > Tinf[i]) { ConditionsOk = false; }
if (Tsup[i] <= 1000 && int(Temperature * 10.0) < Tsup[i]) { ConditionsOk = false; }
}
*/
if (Temperature > -100) {
if (Tinf[i] <= 1000 && Tsup[i] <= 1000 && Tinf[i] < Tsup[i]) { // on applique une hystérésis dont les valeurs sont Tinf et Tsup
if (Temperature * 10.0 > Tinf[i] && Temperature * 10.0 > Tsup[i]) Tseuil = Tinf[i];
if (Temperature * 10.0 < Tinf[i] && Temperature * 10.0 < Tsup[i]) Tseuil = Tsup[i];
if (Temperature * 10.0 > Tseuil) { ConditionsOk = false; }
}
else {
if (Tinf[i] <= 1000 && int(Temperature * 10.0) > Tinf[i]) { ConditionsOk = false; }
if (Tsup[i] <= 1000 && int(Temperature * 10.0) < Tsup[i]) { ConditionsOk = false; }
}
}
J'ai laissé en commentaire le code d'origine.
Voilà c'est tout ce qu'il y a à faire.
Si André pense que c'est utile il pourra peut-être rajouter cette hystérésis sur la température dans la version 13
Cdlt F6AAM Jean-Claude
Routeur Solaire V12.6 Modifié pour 2 modules JSY-194-MT (affichage puissances onduleurs)
Ballon 1800W commandé par Triac + relais fil pilote mode ECO radiateurs
1 ESP32 déporté pour mesure température extérieure.
1 onduleur SMA 1050Wc - 1 onduleur SOLAX Hybride 6200Wc - 2 Batteries de 5.8 kWh
Ballon 1800W commandé par Triac + relais fil pilote mode ECO radiateurs
1 ESP32 déporté pour mesure température extérieure.
1 onduleur SMA 1050Wc - 1 onduleur SOLAX Hybride 6200Wc - 2 Batteries de 5.8 kWh