Aller au contenu

Gestion Antigel Piscine hivernage active


speedoxx007

Messages recommandés

Hello

 

J'ai fait une scène bloc, pour gérer la pompe de la piscine le matin tôt. J'aimerai que la scène vérifie toutes les heures entre 3h et 10 du matin la température d'eau. Si l'eau est en dessus de 3° que la pompe de la piscine fonctionne pendant 30min.

 

Mais la pompe tourne que 3min. et ensuite j'ai trop d'instances... Que est-ce que je fait faut?

 

Merci pour vos aides.

 

Salutations

speedoxx007

scene.jpg

Lien vers le commentaire
Partager sur d’autres sites

Euh non je me suis rejoui trop vite. Maintenant la pompe tourne à chaque heure de 3h à 10h que pendant 3min au lieu de 30min. :-( Et j'ai bien supprimé la coche sur le Trigger en haut de la liste des Triggers.

 

Bizarre...

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

au niveau de la scène tout semble ok, bien que je ne soit pas un spécialiste du mode bloc.

 

Quel le le type de modulue qui correspond à Pompe Piscine ?

Je me demane s'il n'y aurait pas un paramètre au niveau du module qui ferait un auto-off après 3 min.

 

Tu peux encore faire 2 tests :

1) mettre le module Pompe Piscine à On manuellement, et voir s'il rest allumé plus de 3 min

2) démarrer la scènne manuellement et voir si la pompe s'arrête après 1800s (démarrer une scène manuellement, exécute directement les instructions après le Then (ne tien pas compte des conditions)

Lien vers le commentaire
Partager sur d’autres sites

C'est un Qubino Flush 1 Relay. Et il n'a pas de Auto-Off programmé.

 

J'ai fait les 2 tests:

1) Id 85 qui est Pompe piscine manuellement ON tourne plus que 3 min.

2) Je lancé la scène manuellement et la pompe tourne plus de 3 min.

 

En code LUA ça donne ceci:

 

--[[
%% autostart
%% properties
%% weather
%% events
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "03", "00")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "10", "00"))) and (math.floor(os.time()/60)-math.floor(1482112800/60))%60 == 0 )
and
 ( tonumber(fibaro:getValue(86, "value")) < 3 )
)
then
 fibaro:call(85, "turnOn");
 setTimeout(function()
  fibaro:call(85, "turnOff");
 end, 1800000)
end
setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "03", "00")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "10", "00"))) )
and
 ( tonumber(fibaro:getValue(86, "value")) < 3 )
or
startSource["type"] == "other"
)
then
 fibaro:call(85, "turnOn");
 setTimeout(function()
  fibaro:call(85, "turnOff");
 end, 1800000)
end
end
 
Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Je utilise le Virtual Device pour la Filtration Piscine

Mais le matin tôt ce VD n'agit pas tant que l'eau n'est pas prêts des 0 degrés qui ferait tourner la pompe pendant 24h. Avec ma scène antigel j'aimerai éviter que l'eau gèle dans le circuit de la piscine qui fait quand-même env. 30m aller et retour.

 

La j'ai redémarré la box et je verrais demain matin comment ça va.

 

Merci pour ton aide @jojo

Lien vers le commentaire
Partager sur d’autres sites

Hello @jojo

 

J'ai fait un test ce matin. J'ai vite modifié la température à 4°. Donc à 8h ce matin l'eau étais à 3.6°. A 8h la pompe à été démarré et elle c'est arrété quand la température étais déjà en dessus des 4°, donc 3 - 4 min, après l'enclenchement. Mais je pense que ma scénen prend en priorité la température et non le temps d'enchlechement de 30min. Comment modifié le script LUA pour que ça fonctionne?

 

Salutations

 

speedoxx007

Lien vers le commentaire
Partager sur d’autres sites

normalement, ton scénario est ok.

Il tourne toutes les hures, mais il devrait démarrer la pompe que si elle est arr^tée.

Don dans la condition de température, je rajouterais la condition que la pompe soit arrêtée.

Sinon ton scénario est ok, et je ne vois pas pourquoi la pompe s'arrête sinon à cause du VD ? Déactive-le pour voir.

Lien vers le commentaire
Partager sur d’autres sites

J'ai modifié le Script LUA. J'utilise maintenant les boutons du Virtual Device : Gestionnaire Filtration Piscine 

"choc+1h" pour démarrer la pompe et

"stop choc" pour arrèter la pompe de la piscine.

 

Voici le code:

 

--[[
%% autostart
%% properties
%% weather
%% events
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "03", "00")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "09", "00"))) and (math.floor(os.time()/60)-math.floor(1482285600/60))%60 == 0 )
and
 ( tonumber(fibaro:getValue(86, "value")) < 3 )
)
then
-- Appel Button VD "choc 1h"
 fibaro:call(79, "pressButton", "5");
 setTimeout(function()
-- Appel Buton VD "stop choc"
  fibaro:call(79, "pressButton", "7");
 end, 1800000)
end

setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
 ( (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "03", "00")) and tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "09", "00"))) )
and
 ( tonumber(fibaro:getValue(86, "value")) < 3 )
or
startSource["type"] == "other"
)
then
-- Appel Button VD "choc 1h"
 fibaro:call(79, "pressButton", "5");
 setTimeout(function()
-- Appel Buton VD "stop choc"
  fibaro:call(79, "pressButton", "7");
 end, 1800000)
end
end
 
Je verrais demain matin si ça fonctionne :-)
Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Je n'ai plus de box pour tester mais si tu modifies la courbe des cycles autour de zéro le VD va lancer la pompe tout seul. Essaye de mettre un point à zéro degré dans le tableau définissant la courbe. Le vd ne gère que sa plage de température mais si tu mets un point à zéro il va gérer depuis ce point
En plaçant un point à 0 un autre a 4 et un à 5 pour revenir à l'hivernage normal le VD va contrôler la pompe sans script additionel

Lien vers le commentaire
Partager sur d’autres sites

Salut @chris6783

 

Oui j'ai fait cette courbe de cycles:

 

local cycleLayout = {}
cycleLayout[-6]=6
cycleLayout[-1]=6
cycleLayout[0]=6
cycleLayout[1]=5
cycleLayout[4]=3
cycleLayout[6]=1
cycleLayout[8]=0.2
cycleLayout[10]=0.5
cycleLayout[14]=1.2
cycleLayout[19]=1.4
cycleLayout[23]=1.8
cycleLayout[25]=2.8
cycleLayout[26]=3.8
cycleLayout[27]=4.5
cycleLayout[28]=5.2
cycleLayout[30]=6

 

Mais l'eau dans le Bassin à toujours chez moi pour le Moment environ 4°. Mais dans le circuit la température baisse de 1° à 2°. Mon groupe de Filtration ce trouve dans une cabane de jardin (mal isolé). Et c'est la que j'ai le capteur de température. Comme dans ton VD la mesure ce fait autour de midi avec la filtration en marche donc env. 4° de l'eau en mouvement depuis le bassin. Biensure on porrait tricher avec le Slider de ton VD, mais voila. Mon script auxiliaire fonctionne bien.

 

salutations

 

speedoxx007

Lien vers le commentaire
Partager sur d’autres sites

Invité chris6783

Ah ok j'avais pas bien lu ton problème. Oui dans ce cas tu as la bonne approche tu peux même désactiver le VD et tout déléguer à ton script pendant la période hivernage.

Sinon une évolution du VD permettrait de faire un mode hivernage qui ferait tourner X minutes toutes les Y minutes

Envoyé de mon SM-G850F en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...