Aller au contenu

Messages recommandés

Posté(e)

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
Posté(e)

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
Posté(e)

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

  • 1 mois après...
  • 1 an après...
Posté(e)

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
×
×
  • Créer...