tibo789 Posté(e) le 5 mai 2015 Signaler Posté(e) le 5 mai 2015 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 1
tibo789 Posté(e) le 6 mai 2015 Auteur Signaler Posté(e) le 6 mai 2015 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 !! 1
mprinfo Posté(e) le 6 mai 2015 Signaler Posté(e) le 6 mai 2015 Tu peux remplacer 3600 par une variable Mais je vois pas exactement ce que tu veux faire
tibo789 Posté(e) le 7 mai 2015 Auteur Signaler Posté(e) le 7 mai 2015 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
Invité chris6783 Posté(e) le 1 juillet 2015 Signaler Posté(e) le 1 juillet 2015 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.
tibo789 Posté(e) le 22 avril 2017 Auteur Signaler Posté(e) le 22 avril 2017 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 1
Messages recommandés