Aller au contenu

Virtual Device : Gestionnaire Filtration Piscine


Invité chris6783

Recommended Posts

Hello

 

J'ai voulu faire une scène qui enclenche la pompe pendant 30min de la piscine quand l'eau est à 0° et que la scène elle attend 1h avant le prochain si <= 0°. Quand la température de l'eau le matin tôt est très froide le VD ne prend pas en compte.

 

Mais ma scène ne fonctionne pas...

 

Salutations

Speedoxx007

Lien vers le commentaire
Partager sur d’autres sites

  • 1 year later...

bonjour

j'ai un problème avec mon VD

tout fonctionne mode manuel -modes chocs- calculer cycle en manuel mais le mode auto ne démarre pas a 12h00

il ne prends pas la valeur de ref.et ne lance pas de filtration

quelqu un aurait une idee ?

 

merci d'avance

 

Lien vers le commentaire
Partager sur d’autres sites

bonjour

oui elle a changée a 12h09

mais ma Tref n'a pas changée et la filtration ne s'est pas lancée

voici ce que me donne mon  VD de variables

 

GAP_setup = {"config":{"capteurTemperature":268,"tRef":14.06,"minCalcTime":1523952000,"pump":260,"icons":{"AUTO_ON":1006,"AUTO":1005,"AUTO_OFF":1007,"MANU_ON":1008,"MANU_OFF":1009},"mode":"auto"}} [12:09:10]

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

la j'ai lancé 2 chocs 1h et ca fonctionne bizarre non

GAP_setup = {"choc":{"endTime":1523907309,"startTime":1523900109,"duration":2},"config":{"capteurTemperature":268,"tRef":14.06,"minCalcTime":1523952000,"pump":260,"icons":{"AUTO_ON":1006,"AUTO":1005,"AUTO_OFF":1007,"MANU_ON":1008,"MANU_OFF":1009},"mode":"auto"}} [19:39:18]

Lien vers le commentaire
Partager sur d’autres sites

Le 13/04/2015 à 08:55, Berale24 a dit :

@PITP2 :  Ma PaC démarre à  heure fixe en fonction de la température de l'eau et de l'air, sans considération du fonctionnement ou non de la pompe à  filtration qui aujourd'hui n'est pas gérée par la box.

@Berale24  si je comprends bien , tu n'a pas de module FGS ou autre sur ta pompe de filtration ...?

 

ou j'ai pas bien suivi ...

Lien vers le commentaire
Partager sur d’autres sites

J'ai un VD et une scène pour la filtration et un VD et une scène pour la PAC.

Je n'aime pas le main loop des VD c'est pour cela que je préfère décomposer.

Les VD servent à définir les paramètres.

Pour la filtration, heures de début et fin de jour et de nuit, plus H24 en cas de gel et AUTO pour calcul des temps de filtration.

Pour la PAC la scène fonctionne avec des trigger. Si la filtration démarre la PAC se met en Standby en attente des conditions de température de l'air et de l'eau.

Quand la filtration s’arrête, la PAC s'arrête.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, Berale24 a dit :

Quand la filtration s’arrête, la PAC s'arrête.

tu n'es pas en mode d’asservissement  pompe / PAC

 

Il y a 9 heures, Berale24 a dit :

Oui, mais ça s'était avant !!

du coup tu gères avec quoi ...un ipx800  ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

je viens de tester le vd mais j'ai une erreur :

Citation

 

[ERROR] 18:52:19: line 54: bad argument #1 to 'decode' (string expected, got nil)

Pourriez-vous m'aider ?

D'avance merci!

Lien vers le commentaire
Partager sur d’autres sites

Le 16/04/2015 à 10:03, Berale24 a dit :

Mode AUTO: Les temps de filtration sont calculés à  midi en fonction de la température. Cette option n'a donc pas un action immédiate.

A la place des heures, le VD affiche "Mode Auto" dans l'attente de midi. A midi, les heures effectives seront affichée.

@Berale24

 

Salut , je suis en cours d'expérimentation de ton VD filtration

 

me convient  bien dans l'ensemble surtout avec les sliders nuit / jour.

 

Pour le mode AUTO, à 12h00 quand la prise de T° est fait eau et air ...pour ma part le relevé eau se fait dans le local sur le circuit , par contre si il n' y a pas de circulation d'eau (pompe en route) la T° est forcement fausse car > à la réalité ...donc le temps de filtration calculé faussé...

 

il faudrait que le relevé T° se fasse avec la pompe tournante....

 

 

je sais pas si j'ai été assez clair ...:(

 

par contre je sais pas trop comment modifier tout ça ...:huh:

 

si quelqu'un peut m'aider ...

 

merci

Lien vers le commentaire
Partager sur d’autres sites

ta variable doit ressembler à ça :  avec tes heures de filtration 0305 et 1318

variable.JPG.cdfcc1a13e3963de3b3e0842a0998430.JPG

 

 

pour le reste tu as bien renseigné les id pump... temp de l'eau , de l'air ... tes icons ....

Lien vers le commentaire
Partager sur d’autres sites

Comme je l'ai déjà dit, je n'aime pas le main loop des VD, j'ai décidé de décomposer le problème en un VD pour la gestion des paramètres et une scène qui fait le boulot.

Quand on change un paramètre dans le VD la scène et tuée puis redémarrée ce qui lui permet de prendre en considération les nouveaux paramètres.

N'oubliez donc pas de changer l'ID de la scène dans le VD.

 

--[[
%% autostart
%% properties

%% globals
--]]

-----------------------------------------------------------
  -- Fonction du calcul de temps defiltration suivant
  -- température de l'eau
-----------------------------------------------------------
function Auto()
  local tn,tj,T1,T2,T3,T4;
  
  if (tempEau < 3) then
     tn = 4; tj = 2;
   elseif (tempEau < 10) then
      tn = 2; tj = 2;
    elseif (tempEau < 12) then
      tn = 2; tj = 2;
    elseif (tempEau < 14) then
      tn = 2; tj = 2;
    elseif (tempEau < 16) then
      tn = 3; tj = 2;
    elseif (tempEau < 20) then
      tn = 2; tj = 4;
    elseif (tempEau < 24) then
      tn = 3; tj = 5;
    elseif (tempEau < 28) then
      tn = 4; tj = 5;
    else
      tn = 4; tj = 6;
    end
    T1 = string.format("%02d",7 - tn);
    T2 = string.format("%02d",7);
    T3 = string.format("%02d",14);
    T4 = string.format("%02d",T3 + tj);
    local str = "Auto"..T1..T2..T3..T4;
    fibaro:debug("Calcul "..str);
    fibaro:setGlobal("FilterTime",str);
    fibaro:debug("auto  "..tempEau.." °C "..T1.."  "..T2.."  "..T3.."  "..T4);
  return T1,T2,T3,T4;
end
-----------------------------------------------------------------
function display_time(night,day)
  fibaro:call(idVD, "setProperty", "ui.Label1.value", night);
  fibaro:call(idVD, "setProperty", "ui.Label6.value", day);
end
-----------------------------------------------------------------
  
local idAir = 237;
local idEau = 328;
local idPump = 59;
local iconON = 1035;
local iconOFF = 1034;
local iconAUTO = 1036;
local iconON2;
idVD = 98;
local start = true;

local tn, tj;
local T1,T2,T3,T4;

-- Boucle sur les heures

while true do
  local currentDate = os.date("*t");
  local TriggerTime = string.format("%02d",currentDate.hour)..":"..string.format("%02d",currentDate.min);

if (TriggerTime == "13:55" or start) then
    
     -- Lecture des heures dans la variable globale
     -- les heures sont définies par le VD    
   local Time = fibaro:getGlobal("FilterTime");
	
	 -- A 14h, affichage des températures
    -- et recalcul des temps si mode Auto
 
   start = false; 
   tempAir = fibaro:getValue(idAir,"value");
   tempEau = fibaro:getValue(idEau,"value");
   local str = string.format("%3.1f",tempEau).." / "..string.format("%3.1f",tempAir);
   fibaro:call(idVD, "setProperty", "ui.Label3.value", str.." °C");
      
   if (string.sub(Time,1,4) == "Auto") then
    
-- Mode Auto
  
     tempEau = tonumber(tempEau);
     T1,T2,T3,T4 = Auto();
     display_time("De : "..T1.." h à "..T2.." h","De : "..T3.." h à "..T4.." h");
     iconON2 = iconAUTO;
     T1 = T1..":00";
     T2 = T2..":00";
     T3 = T3..":00";
     T4 = T4..":00";
 
   elseif (string.sub(Time,1,4) == "H-24") then
  	
 -- Marche forcée

    fibaro:call(idPump, "turnOn");
    fibaro:debug("Marche forcée");
    fibaro:call(idVD, "setProperty", "currentIcon", iconON);
    display_time("Marche Forcée","Marche Forcée");

  else

     T1 = string.sub(Time,5,6);
     T2 = string.sub(Time,7,8);
     T3 = string.sub(Time,9,10);
     T4 = string.sub(Time,11,12);
     iconON2 = iconON;
     display_time("De : "..T1.." h à "..T2.." h","De : "..T3.." h à "..T4.." h");
     T1 = T1..":00";
     T2 = T2..":00";
     T3 = T3..":00";
     T4 = T4..":00";
     fibaro:debug("start "..os.date("%x").." -- "..T1.."  "..T2.."  "..T3.."  "..T4);

   end

end

-- Mise en route ou arrêt

if ((TriggerTime == T1 and T1 ~= T2) or (TriggerTime == T3 and T3 ~= T4)) then
   fibaro:call(idPump, "turnOn");
   fibaro:call(idVD, "setProperty", "currentIcon", iconON2);
   fibaro:debug("Filtration On");
elseif ((TriggerTime == T2) or (TriggerTime == T4)) then
   fibaro:call(idPump, "turnOff");
   fibaro:call(idVD, "setProperty", "currentIcon", iconOFF);
   fibaro:debug("Filtration Off");
  
end
fibaro:sleep(60*1000);
end

Dans la fonction Auto, à vous de jouer avec les temps de filtration jour et nuit. 

 

 

Filtration_Piscine (1).vfib

Lien vers le commentaire
Partager sur d’autres sites

Il y a 6 heures, marpas01 a dit :

merci pour ton VD  il fonctionne très bien

je l'adopte...

Salut @marpas01

Dis moi ton relevé de T° eau est effectuée :

  1. directement dans le bassin...? 
  2. dans le local sur le circuit de filtration ...?

 

Si c 'est le deuxieme point  , le relevé est faussé a forciori le temps de filtration en mode Auto car il faut que la pompe filtration tourne pour avoir la T° de l'eau réelle .

 

étant  donné que j'ai reçu mon doigt de gant hier pour la prise de T° eau , je vais l'installer ces prochains jours ( je pense entre le Bypass et la sortie du filtre sable ...)

 

en synthèse du scénario , il faut faire tourner la pompe 5 minutes , faire le relevé de T° eau ,  puis le VD fait son job....:D

 

@Berale24

dans ton VD , à quoi correspond ta scène 233  ?

fibaro:killScenes(233)

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...