Aller au contenu

Reglage Du Temps De Filtration Piscine En Lua


tibo789

Messages recommandés

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

  • 1 mois après...
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 an après...

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...