PoolMaster: gestion et domotisation de ma piscine

Pour ma part, J'ai un volume de 30m3. J'ai mis KPph:15000 et ORPkp:1000.

La régulation pour l'orp est Nickel, avec une température de l'eau a 28-29 °C.
J'ai mis une consigne à 700, la pompe tourne 2-3min par jour, la consigne est respectée.
Pour le PH je trouve que la valeur est un peu haute, je pense augmenter la valeur de KPph.

Je vérifie toujours avec des bandelettes pour avoir une comparaison.

Merci N1co44 pour tes valeurs, par contre impossible pour moi de trouver tes résultats et lorsque je calcul avec mes propres valeurs avec un debit de pompe à 20l/h , je tombe sur un résultat de :

KPph : 101000 ​ms
Kporp : 81000ms

Je me plante surement sur des unités

Quelqu'un rencontre t'il des problèmes de gestion de la pompe de filtration en fonction de la température de l'eau ? J'ai l'eau de la piscine qui est à 28°, et théoriquement, la filtration devrait se caler sur une plage de 14H (storage.FiltrationDuration = round(storage.TempValue / 2):wink: - Hors je suis toujours bloqué sur une filtration de 12h
Je suis en poolmaster 5.0.1, je n'ai pas constaté d'autres anomalies pour le moment

Bonjour

Je viens de faire les modifications comme ci dessus, mais a la compliation je me retrouve avec des erreurs. Est ce quelqu'un peut m'aider merci

voici le code d'erreur

C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino: In function 'void setup()':
PoolMaster:275:3: error: 'ResetTFT' was not declared in this scope
ResetTFT();
^~~~~~~~
PoolMaster:289:5: error: 'loadConfig' was not declared in this scope
loadConfig();//Restore stored values from eeprom
^~~~~~~~~~
PoolMaster:294:5: error: 'saveConfig' was not declared in this scope
saveConfig();//First time use. Save default values to eeprom
^~~~~~~~~~
PoolMaster:392:16: error: 'gettemp_start' was not declared in this scope
gettemp.next(gettemp_start);
^~~~~~~~~~~~~
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:392:16: note: suggested alternative: 'gettemp'
gettemp.next(gettemp_start);
^~~~~~~~~~~~~
gettemp
PoolMaster:482:34: error: 'freeRam' was not declared in this scope
Serial << F("[memCheck]: ") << freeRam() << F("b") << _endl;
^~~~~~~
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:482:34: note: suggested alternative: 'FreeRam'
Serial << F("[memCheck]: ") << freeRam() << F("b") << _endl;
^~~~~~~
FreeRam
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino: In function 'void messageReceived(String&, String&)':
PoolMaster:556:33: error: 'freeRam' was not declared in this scope
Serial << F("FreeRam: ") << freeRam() << F(" - Qeued messages: ") << queueIn.itemCount() << _endl;
^~~~~~~
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:556:33: note: suggested alternative: 'FreeRam'
Serial << F("FreeRam: ") << freeRam() << F(" - Qeued messages: ") << queueIn.itemCount() << _endl;
^~~~~~~
FreeRam
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino: In function 'void GenericCallback(Task*)':
PoolMaster:625:3: error: 'UpdateTFT' was not declared in this scope
UpdateTFT();
^~~~~~~~~
PoolMaster:645:5: error: 'ProcessCommand' was not declared in this scope
ProcessCommand(queueIn.dequeue());
^~~~~~~~~~~~~~
PoolMaster:653:5: error: 'saveConfig' was not declared in this scope
saveConfig();
^~~~~~~~~~
PoolMaster:663:5: error: 'UpdateRTC' was not declared in this scope
UpdateRTC();
^~~~~~~~~
PoolMaster:764:5: error: 'LCDScreen1' was not declared in this scope
LCDScreen1();
^~~~~~~~~~
PoolMaster:766:5: error: 'LCDScreen2' was not declared in this scope
LCDScreen2();
^~~~~~~~~~
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino: In function 'void PublishDataCallback(Task*)':
PoolMaster:876:34: error: 'freeRam' was not declared in this scope
Serial << F("[memCheck]: ") << freeRam() << F("b") << _endl;
^~~~~~~
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:876:34: note: suggested alternative: 'FreeRam'
Serial << F("[memCheck]: ") << freeRam() << F("b") << _endl;
^~~~~~~
FreeRam
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino: In function 'void PublishSettings()':
PoolMaster:1094:34: error: 'freeRam' was not declared in this scope
Serial << F("[memCheck]: ") << freeRam() << F("b") << _endl;
^~~~~~~
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:1094:34: note: suggested alternative: 'FreeRam'
Serial << F("[memCheck]: ") << freeRam() << F("b") << _endl;
^~~~~~~
FreeRam
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino: At global scope:
PoolMaster:1263:3: error: 'storage' does not name a type
storage.PhValue = (storage.pHCalibCoeffs0 * ph_sensor_value) + storage.pHCalibCoeffs1; //Calibrated sensor response based on multi-point linear regression
^~~~~~~
PoolMaster:1264:3: error: 'samples_Ph' does not name a type
samples_Ph.add(storage.PhValue); // compute average of pH from last 5 measurements
^~~~~~~~~~
PoolMaster:1265:3: error: 'storage' does not name a type
storage.PhValue = samples_Ph.getAverage(10);
^~~~~~~
PoolMaster:1266:3: error: 'Serial' does not name a type
Serial << F("Ph: ") << storage.PhValue << F(" - ");
^~~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\PoolMaster.ino.cpp:1:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: expected unqualified-id before ')' token
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
^
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:1266:13: note: in expansion of macro 'F'
Serial << F("Ph: ") << storage.PhValue << F(" - ");
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: expected unqualified-id before ')' token
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
^
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:1266:45: note: in expansion of macro 'F'
Serial << F("Ph: ") << storage.PhValue << F(" - ");
^
PoolMaster:1271:3: error: 'storage' does not name a type
storage.OrpValue = (storage.OrpCalibCoeffs0 * orp_sensor_value) + storage.OrpCalibCoeffs1; //Calibrated sensor response based on multi-point linear regression
^~~~~~~
PoolMaster:1272:3: error: 'samples_Orp' does not name a type
samples_Orp.add(storage.OrpValue); // compute average of ORP from last 5 measurements
^~~~~~~~~~~
PoolMaster:1273:3: error: 'storage' does not name a type
storage.OrpValue = samples_Orp.getAverage(10);
^~~~~~~
PoolMaster:1274:3: error: 'Serial' does not name a type
Serial << F("Orp: ") << orp_sensor_value << " - " << storage.OrpValue << F("mV") << _endl;
^~~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\PoolMaster.ino.cpp:1:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: expected unqualified-id before ')' token
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
^
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:1274:13: note: in expansion of macro 'F'
Serial << F("Orp: ") << orp_sensor_value << " - " << storage.OrpValue << F("mV") << _endl;
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: expected unqualified-id before ')' token
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
^
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:1274:76: note: in expansion of macro 'F'
Serial << F("Orp: ") << orp_sensor_value << " - " << storage.OrpValue << F("mV") << _endl;
^
PoolMaster:1278:3: error: 'storage' does not name a type
storage.PSIValue = (storage.PSICalibCoeffs0 * psi_sensor_value) + storage.PSICalibCoeffs1; //Calibrated sensor response based on multi-point linear regression
^~~~~~~
PoolMaster:1279:3: error: 'samples_PSI' does not name a type
samples_PSI.add(storage.PSIValue); // compute average of PSI from last 5 measurements
^~~~~~~~~~~
PoolMaster:1280:3: error: 'storage' does not name a type
storage.PSIValue = samples_PSI.getAverage(3);
^~~~~~~
PoolMaster:1281:3: error: 'Serial' does not name a type
Serial << F("PSI: ") << psi_sensor_value << " - " << storage.PSIValue << F("Bar") << _endl;
^~~~~~
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28:0,
from sketch\PoolMaster.ino.cpp:1:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: expected unqualified-id before ')' token
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
^
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:1281:13: note: in expansion of macro 'F'
Serial << F("PSI: ") << psi_sensor_value << " - " << storage.PSIValue << F("Bar") << _endl;
^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:38:74: error: expected unqualified-id before ')' token
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper *>(PSTR(string_literal)))
^
C:\Users\LY\Desktop\Piscine\PoolMaster-5.0.1\source\PoolMaster\PoolMaster.ino:1281:76: note: in expansion of macro 'F'
Serial << F("PSI: ") << psi_sensor_value << " - " << storage.PSIValue << F("Bar") << _endl;
^
PoolMaster:1282:1: error: expected declaration before '}' token
}
^
exit status 1
'ResetTFT' was not declared in this scope

tu as utilise les bonnes librairies avant de compiler ?

si je compile la version 5.0.1 sans modification c'est bon pas d'erreur

Vers la ligne 200 de PoolMaster.ino, il y a la ligne suivante:
PID PhPID(&storage.PhValue, &storage.PhPIDOutput, &storage.Ph_SetPoint, storage.Ph_Kp, storage.Ph_Ki, storage.Ph_Kd, REVERSE);
C'est là qu'on indique le sens de la régulation : REVERSE ou DIRECT, selon la nature de son eau. La fonction PID vise à annuler l'erreur (consigne - valeur). Avec une eau à tendance basique, valeur est plus grande que consigne, donc l'erreur est négative, on utilise du pH- pour baisser le pH, donc REVERSE. Avec une eau à tendance acide, on met du pH+ pour augmenter le pH, donc DIRECT.

@ntls2000 : n'as-tu pas une heure de fin de filtration max qui limite ton amplitude ?

Je penche aussi pour l'hypothèse de gixy31.

Mais je dois bien avouer que je n'ai pas encore tout compris des automatismes. Pour example l 'Auto mode :

  • Quand je switch sur off, il arrête les pid et pompes ph et chlore, mais pas la filtration. Ok (why not, c'est pas plus mal d'avoir libre accès à la filtration qui plus est pour le nettoyage du filtre à sable)

  • Quand je le switch sur on (si la filtration était sur off isolément), il ne met pas en route la filtration mais surtout il ne met pas en route les pid ph et chlore ? Obligé de remettre à la main les pid sur "on". Je n'ai pas forcément compris la logique sans douter qu'il doit y en avoir une que je n'ai pas réussi à saisir !

Enfin dernière question, c'est pour le principe car je ne m'en servirai pas (mais j'aime pas laisser un sentiment d'échec derrière moi...) Tout fonctionne très bien, y compris la partie mqtt. Toutefois (je suis sur arduino avec shield adéquat), même si j'ai déclaré une adresse ip cohérente avec mon lan et une adresse mac, je n'arrive à accéder à aucune page http... crée par l'arduino. (Je ne vois même pas l'arduino sur mon lan, mais le mqtt fonctionne parfaitement ????). Si quelqu'un à une idée ? Merci

Quand tu remets AUTO, si la filtration a été arrêtée manuellement avant (c'est l'emergency stop), elle ne se remet pas en route seule, il faut la redémarrer à la main ou attendre le jour suivant. Les PID ne redémarreront que lorsque la filtration sera en route, après le délai configuré.

Merci Gixy31, du coup je suis passé en direct pour le pH.

Il va falloir que je me trouve une autre solution étalon pour l'orp car là j'utilise une seule solution en 470mv mais j'ai l'impression que la mesure n'est pas vraiment fiable. Lorsque je fais un test avec bandelettes, les bandelettes indiquent que je suis à 3 au niveau du chlore et la mesure m'indique 650mv avec ph de 7.4 et température de 24°c. Donc je vais voir pour trouver une solution de 650mv pour étalonné sur 2 mesures.

Merci de ta réponse gixy31, trop impatient, je ne m'étais pas donné le temps d'attente adéquat !

Pour mon pb d'accès internet, j'ai mis une ip adéquat et une adresse mac pour le shield au hazard ds le config ? Il y a autre chose à faire ???