Aller au contenu

Reglage Du Temps De Filtration Piscine En Lua


tibo789

Recommended Posts

Bonsoir,

Je viens d'acquerir une HC2 que j'ai connecté a ma Zibase.

Je transfert progressivement tout le Zwave sur la HC2 mais j'ai un souci sur le code en LUA.

Je calcul un temps de fonctionnement  en seconde de la pompe de filtration en fonction de la temperature de l'eau.

J'ai essayé deux methodes mais sans resultat j'ai toujours une erreur pas moyen de faire une tempo reglable

 

3600 remplacé par fibaro:setGlobal("TempsMarchePiscine", "0")

 

1-fibaro.sleep(3600*1000)
2-setTimeout(function() fibaro:call(101, "turnOff");end, 3600*1000)

 

Merci de votre aide

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

je n'attire pas la foule

personne n'a voulu realiser une tempo reblable sur HC2 ???

Je n'avais eu aucun proleme pour le faire sur la Zibase !!

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Cela ne fonctionne pas si je mets une variable a la place de 3600. Je veux faire tourner la pompe de la piscine un certain temps fonction de la température de l'eau

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
Invité chris6783

J'arrive un peu tard mais j'avais publié un VD pour ce besoin ici

 

http://www.domotique-fibaro.fr/index.php/topic/4432-virtual-device-gestionnaire-filtration-piscine/?hl=piscine

 

je vais publier une mise à  jour cette semaine car dans certains cas de changement de variable globale via le panneau de variable il ne reprenait pas le calcul

Il est maintenant stable et fait son job.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 year later...

Bonjour , j'ai jamais eu le temps de donner mon résultat final

voila comment je calcule le temps de fonctionnement de la piscine inspiré de se que j'avais trouvé sur zibase

Le temps de filtration est optimisé en fonction de la température cela fais 2 ans que ca fonctionne parfaitement

La filtration est lancé par un script 7 fois par jour

 

Bouton calcultemps lancé 1 fois par jour a midi

local idEau = 148;
local tempEau = fibaro:getValue(idEau,"value");
local currentDate = os.date("*t");
local MinuteDebut= currentDate.min
local HeureDebut= currentDate.hour
local MinuteFin= 0
local HeureFin= 0
fibaro:debug(HeureDebut)
fibaro:debug(MinuteDebut)


--calcul duree filtration
local Duree = 45 + (tonumber(tempEau) - 17) * 5;
if Duree < 0 
  then
      Duree =0 
  else
  if Duree > 120
    then
        Duree = 120
    end
end
-- calcul heure d'arret
if Duree + MinuteDebut < 60
    then
        MinuteFin = MinuteDebut + Duree
          HeureFin = HeureDebut
    else
    if Duree + MinuteDebut > 60
        then
            MinuteFin = Duree - 60 + MinuteDebut
              HeureFin = HeureDebut + 1
          else
        if Duree + MinuteDebut == 120
        then
            MinuteFin = 0
              HeureFin = HeureDebut + 2
          end
      end
end

fibaro:debug(HeureFin)
fibaro:debug(MinuteFin)
TempsPiscine=string.format("%02d", HeureFin) .. ":" .. string.format("%02d", MinuteFin)
fibaro:debug(TempsPiscine)


fibaro:setGlobal("TempPiscine", Duree)
fibaro:setGlobal("TempsPiscine", TempsPiscine)
fibaro:debug("Duree :"..fibaro:getGlobalValue("TempPiscine"))
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label3.value", "Durée Filtration "..fibaro:getGlobalValue("TempPiscine").."mn x 7")
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label4.value", "Heure Arret "..fibaro:getGlobalValue("TempsPiscine"))

 

et dans la boucle principale 

if string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getGlobalValue("TempsPiscine")
    then
      fibaro:call(idPump, "turnOff");
    fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label2.value", "Pompe à l'arrêt"); 
end

Capture.PNG.e0be589b8ed0346e19ade1816d91e527.PNG

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...