Comme écrit plus bas, il y a des scripts très bien fait, comme celui-ci : viewtopic.php?f=10&t=3935 et plus complets, mais je voulais un script personnel adapté à mon usage. Je vous en fait simplement profiter pour ceux que ça intéresse.
Il est écrit en LUA. En fonction de la température de l'eau de ma piscine il fait tourner le bon programme de filtration 2H, 4H, 6H, 8H, 12H, 20H...
Je me suis basé sur les conseils de http://www.piscine-clic.com/news/2011/0 ... -par-jour/
Les 5 programmes tournent donc selon leurs recommandations et ce pendant la journée. Vous pouvez bien entendu modifier le script selon vos usages ou le type de traitement utilisé. Personnellement, je suis fidèle au bon vieux chlore.
Depuis la V3 : La température est lue chaque minute puis mise dans une variable personnelle toutes les heures qui fonction de la température de l'eau passe d'un programme de filtration à l'autre si on change de plage. En effet, j'ai jugé que la moyenne prise la veille ne correspondait pas à mon usage car je peux avoir de fortes variations de températures de l'eau d'un jour à l'autre. C'est heureusement ou malheureusement mon cas car j'ai un faible volume associé à la chaleur du Sud et à une pompe à chaleur pour aider sa chauffe.
J'ai intégré une fonction déclenchement forcé en dessous ou en dessus d'une certaine température. (Mode Hors gel pour les hivernages actifs). Mise en marche permanente au dessus de 30°C également.
Je me suis aussi amusé à rajouter une fonction déclenchement forcé au dessus d'une certaine vitesse de vent. En effet, j'ai pas mal d'arbres et j'évite ainsi que les feuilles tombent au fond. Cette fonction est activable par simple modification d'une variable (voir plus bas). En effet, je me suis dit que peut-être tout le monde n'a pas d'anémomètre connecté à son Domoticz. Il est possible de faire l'inverse également si on ne veut pas bourrer ses skimmers de feuilles :
Pour cela remplacer dans mon script :
Code : Tout sélectionner
if Wspeed > vent_vmax and otherdevices[pompe] == 'Off' then
commandArray[pompe]='On'
print("Démarrage pompe : Vitesse du vent élevée : " .. Wspeed .. " Km/h")
return commandArray
elseif Wspeed > vent_vmax and otherdevices[pompe] == 'On' then
return commandArray
Code : Tout sélectionner
if Wspeed > vent_vmax and otherdevices[pompe] == 'On' then
commandArray[pompe]='Off'
print("Arrêt pompe : Vitesse du vent élevée : " .. Wspeed .. " Km/h")
return commandArray
elseif Wspeed > vent_vmax and otherdevices[pompe] == 'Off' then
return commandArrayOn peut bien entendu utiliser une sonde ds18b20 étanche, viewtopic.php?f=7&t=1956
Personnellement, comme j'ai aussi une station météo qui tourne sous weewx https://meteo.payrastre.fr et que j'avais une sonde oregon qui ne servait à rien, je l'ai modifiée comme ceci en récupérant la CTN à l'intérieur et en la collant à la bi composant dans une vis inox :
Ensuite perçage dans le skimmer et la vis en place :

Pour piloter la pompe de la filtration de ma piscine, j'ai utilisé un module Zwave que j'ai intégré dans le coffret électrique étanche de mon bloc de filtration :

Il alimente le petit relais bleu en 24V DC qui alimente le relais de puissance de la pompe.
Celui-ci récupère également l'info de commande la pompe à chaleur.
Un flotteur est également dans le skimmer qui en cas de niveau bas coupe l'alimentation du relais bleu et ainsi protège la pompe en cas de niveau d'eau trop bas.
Je vous donnerai le schéma si vous voulez, mais rien de compliqué. Perso j'ai préféré ne pas gérer le niveau d'eau bas par domoticz car si un pb survient et que le relais ne reçoit pas l'info de coupure la pompe grillera. Là au moins, au pire si mon flotteur déconne, la pompe ne tournera pas.
Bien sur, pour que mon script soit utilisable, il faudra que la sonde de température soit présente dans votre installation domoticz ainsi qu'un interrupteur Zwave ou autre pilote la pompe de filtration.
Comme le script analyse toutes les minutes la température de la piscine et exécute le programme de filtration adéquat, il faudra rajouter à l'installation domoticz un interrupteur virtuel que l'on positionnera à OFF pour pouvoir exécuter les opérations de maintenance.
Voilà le script :
Voici la liste qu'il vous faudra personnaliser en fonction de votre usage :
Code : Tout sélectionner
-- Variables à personnaliser
local pompe = 'Pompe Piscine' -- Nom de l'interrupteur de la pompe de piscine
local piscine = 'Piscine' -- Nom de la sonde de température de l'eau de la piscine
local anemometre = 0 -- Mettre à 1 si vous voulez utiliser la fonction démarrage de filtration en cas de vent élevé.
local vent = 'Vent / Ressenti' -- Nom du capteur de vent à personnaliser si vous avez mis anémomètre à 1
local vent_vmax = 20 -- Vitesse du vent pour déclencher la filtration
local auto = 'Filtration Automatique' -- Nom de l'inter virtuel qui permet de passer en mode manuelSoyez indulgents avec mon script, c'est le premier que j'écris en LUA, alors il est certainement perfectible. Bon usage.
Egalement pensez à créer la variable personnalisée dans Domoticz comme ci dessous :

Il est conseillé de mettre exactement le même nom de variable que moi sinon il vous faudra changer cette valeur dans le script ici :
Code : Tout sélectionner
-- Toutes les heures on actualise la variable utilisateur (temppiscine)
if minute==00 then
commandArray['Variable:temppiscine'] = Temp_piscine
end
-- Conversion température piscine depuis la variable en nombre
Temp_piscine_H = tonumber(uservariables['temppiscine'])